Skip to main content
 首页 » 编程设计

python之在python中的类中创建对象

2025年05月04日15davidwang456

所以我在 python 中有这个类

class room (object): 
 
    def __init__(self,number): 
        self.room_number=number 
 
    def get_room_num(self): 
        return self.room_number 

我还有另一个类叫房子,基本上当我创建房子对象时,我还需要为房子创建房间对象,房间的数量将由用户选择。

我很难创建动态对象(因为它是由用户指定的,我们会有 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) 

有更好的方法吗?如果有请帮忙

iter 函数在那里,所以我可以迭代它,例如

mansion=House(10) 
 
for i in mansion: 
    print i.get_room_num() 

请您参考如下方法:

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