我的编码能用吗?程序应该在列表中搜索酒店,如果返回None,我可以在列表中添加一个新的酒店。你知道吗
我特别需要你的帮助。你知道吗
class Hotel:
def __init__(self, name, address):
self._name = name
self._address = address
@property
def name(self):
return self._name
@property
def address(self):
return self._address
def __str__(self):
return "Hotel Name: {} Address: {}".format(self._name, self._address)
class TransportServices:
def __init__(self):
self._hotels = []
#self._bookings = [] # as you can see i have two other list in this class
#self._drivers = []
def searchHotel(self, name):
for h in self._hotels:
if h.name == name:
return h
return None
def addHotel(self, hotel):
h = self.searchHotel(hotel)
if h is None:
self._hotels.append(hotel)
return True
else:
return False
def __str__(self):
hotels = [str(h) for h in self._hotels]
return "Hotels\n{} ".format(self._hotels) # need help here
def main():
hotel = TransportServices()
hotel.addHotel(Hotel("123", "ABC"))
hotel.addHotel(Hotel("234", "QWE"))
print(hotel)
main()
问题出在你的退货单上。你知道吗
改变
至
问题出在你身上
方法。您正在比较
h.name
和name
,但是name
不是字符串(就像h.name
),而是Hotel
对象。你知道吗试试吧
或者在此处传递字符串,然后在
addHotel
中执行以下操作:另请注意,如果两件事情在逻辑上应该是相同的,那么定义
__eq__
可能会很有用。如果任何两个酒店共用一个名称和地址,它们应该是同一个酒店,这样你就可以这样做这样做的好处是使
searchHotel
更容易。你知道吗它认为因为您只是在打印TransportServices对象列表,所以请尝试使用searchHotel函数。你知道吗
相关问题 更多 >
编程相关推荐