我想确认一下
hotel_name
不存在于
Hotel.hotels
列表
看来,每当我开始进食循环查看空列表。
注意如果我没有使用for循环并且只使用
Hotel.hotels.append([number,hotel_name,city,total_number,empty_rooms])
打印酒店名单
[[1, 'Crown Plaza', 'alex', 20, 2], [1, 'Crown Plaza', 'alex', 20, 2], [2, 'Radisson Blu', 'cairo', 24, 22], [3, 'Paradise Inn', 'dubai', 390, 200], [4, 'Four Seasons', 'alex', 1000, 400], [5, 'Address', 'dubai', 500, 200], [6, 'Fairmont', 'dubai', 1000, 100], [7, 'Rotana', 'dubai', 5000, 300]]
[Finished in 0.1s]
这是文件
class Hotel():
"""""""""
this is hotel class file
"""
hotels = []
def __init__(self,number,hotel_name,city,total_number,empty_rooms):
self.number = number
self.hotel_name = hotel_name
self.city = city
self.total_number = total_number
self.empty_rooms = empty_rooms
for i in Hotel.hotels:
if self.hotel_name not in i:
Hotel.hotels.append([number,hotel_name,city,total_number,empty_rooms])
# else:
# print "Hotel already exists!"
feed_dataBase_with_hotel = Hotel(1,"Crown Plaza","alex",20,2)
feed_dataBase_with_hotel = Hotel(1,"Crown Plaza","alex",20,2)# cull repeated
feed_dataBase_with_hotel = Hotel(2,"Radisson Blu","cairo",24,22)
feed_dataBase_with_hotel = Hotel(3,"Paradise Inn","dubai",390,200)
feed_dataBase_with_hotel = Hotel(4,"Four Seasons","alex",1000,400)
feed_dataBase_with_hotel = Hotel(5,"Address","dubai",500,200)
feed_dataBase_with_hotel = Hotel(6,"Fairmont","dubai",1000,100)
feed_dataBase_with_hotel = Hotel(7,"Rotana","dubai",5000,300)
print Hotel.hotels
非常感谢帕特里克的回答
更新
如果我想从dict构建一个列表,因为我想访问空房间并用另一个类更改它的值
class Hotel():
"""
this is hotel class file
"""
hotels = {}
hotelList = []
def __init__(self,number,hotel_name,city,total_number,empty_rooms):
self.number = number
self.hotel_name = hotel_name
self.city = city
self.total_number = total_number
self.empty_rooms = empty_rooms
# edited: no for needed
if self.hotel_name in Hotel.hotels:
print('Hotel {} Already exists!'.format(self.hotel_name))
return # or raise ValueError & handle it
Hotel.hotels[self.hotel_name] = self
tempList = Hotel.hotels.items()
for i in tempList:
x = Hotel.hotels.items()[i][1]
Hotel.hotelList.append(x)
更新
预订的另一个类将使用我们在品位酒店使用的实例变量HoTeleNoDe。
from hotel import Hotel
from customer import Customer
from notification import Notification
class Reservation():
reservations =[]
def reserve_room(self,hotel_name, customer_name):
x = Hotel.hotels.values()
for i in x:
if Hotel.hotel_name in i:
Reservation.reservations.append([hotel_name,customer_name])
i[4] -=1
属性错误:类酒店没有属性“hotel\u name”
更新
从
Understanding
getitem
method
使用
def __getitem__(self, hotel_name):
return self.hotel_name
问题解决了!
特别感谢
Patrick