Gra*_*tas 2 python initialization class object
我有一堂关于房间的课。我希望每次使用该类创建对象时,该对象都会被添加到所有房间的列表中。客房等级:
class Rooms:
"""Room class, takes type,days, occupied or not and when it frees up"""
def __init__(self, room_type, days, occupied, when_free):
self.room_type = room_type
self.days = days
self.occupied = occupied
self.when_free = arrow.get(when_free,'YYYY-MM-DD')
Run Code Online (Sandbox Code Playgroud)
任何其他反馈也将受到赞赏!
也不确定我是否应该就此创建新主题,但是否有可能当创建对象并将占用时的 True 传递给对象时,您不需要传递第四个变量,而是将其作为当前日期?简而言之,如果没有第四个变量,它会传递 arrow.get(str(arrow.utcnow()),'YYYY-MM-DD') 代替
弄清楚了我的第二个问题。我确实将init更改为:
def __init__(self, room_type, days, occupied, when_free=str(arrow.get(str(arrow.utcnow()),'YYYY-MM-DD'))):
self.room_type = room_type
self.days = days
self.occupied = occupied
self.when_free = arrow.get(when_free,'YYYY-MM-DD')
Run Code Online (Sandbox Code Playgroud)
我建议采用比上面稍微优雅和逻辑的方式:
class Building(object):
def __init__(self):
self.rooms = []
class Room(object):
def __init__(self, building=None)
if building:
building.rooms.append(self)
self.building = building
b = Building()
r = Room(b)
Run Code Online (Sandbox Code Playgroud)
这样就不需要每次都调用b.rooms.append,现在更符合OOP。