Rav*_*ave 1 python oop class object
所以我在python中有这个类
class room (object):
def __init__(self,number):
self.room_number=number
def get_room_num(self):
return self.room_number
Run Code Online (Sandbox Code Playgroud)
我还有一个叫做 House 的类,基本上当我创建房子对象时,我还需要为房子创建房间对象,房间的数量将由用户选择。
我很难创建动态对象(因为它是由用户指定的,我们会有 1 个房间或 10 个房间),我不能给每个房间对象一个名字,因为我不知道有多少个。
所以我试过这样
class House (object):
def __init__(self,num_of_rooms):
self.room_holder=[]
for i in range(num_of_rooms):
self.room_holder.append(room(i))
def __iter__(self):
return iter(self.room_holder)
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点?如果有,请帮忙
的ITER功能是有这样我就可以在其上进行迭代,例如
mansion=House(10)
for i in mansion:
print i.get_room_num()
Run Code Online (Sandbox Code Playgroud)
class Room(object): # note: class name is Capitalized
def __init__(self, number):
self.number = number
# get_ methods are non-Pythonic.
# If you need to do some processing to retrieve room number,
# make it a @property; otherwise, just use the field name
class House(object):
def __init__(self, num_rooms):
# I assume you don't want a room 0?
self.rooms = [Room(i) for i in range(1, num_rooms+1)]
def __iter__(self):
return iter(self.rooms)
mansion = House(10)
for room in mansion:
print room.number
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16798 次 |
| 最近记录: |