如何定义具有变量属性的类

2024-10-03 13:28:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用两个类,分别定义为zonesystemsystem应该包含几个区域,但数量可能会有所不同。例如,我定义了类zone

class zone(object):
    def __init__ (self,
        nameZone = None,
        height = None,
        width = None):

        self.nameZone = nameZone
        self.height = height
        self.width = width   

system如下所示:

   class system(object):
    def __init__(self,
                 SystemName = None,
                 NumberOfZones = None,
                 zone = None):

        self.SystemName = SystemName
        self.NumberOfZones = NumberOfZones
        self.zone = zone

例如,我想知道如何用一个可变数量的参数来定义类系统?比如我可以:

 building = system(2, apart1, apart2)
 building2 = system(3, apart1,apart2,apart3)

当然,其中apart1、2和3被定义为类zone。你知道吗

我试过这样的方法:

for i in range(self.NumberOfZones)
         self.zone = zone

但这显然行不通。你知道吗


Tags: selfnonezone数量定义objectdefwidth
3条回答

使用varargs是可以的,但是我要说的是,显式地传递一个区域列表更为清晰。这样,如果需要,您可以在将来添加不同的命名参数。你知道吗

可以使用变量args功能。你知道吗

class system(object):
    def __init__(self, SystemName, *zones):
        self.SystemName = SystemName
        self.zones = list(zones)

    # The number of zones is the length of the zones list.

然后你可以把任何数字,甚至不必指定多少。Python只会将名称后面的所有参数收集为zones。你知道吗

class System(object):
    def __init__(self, system_name = None, *zones):
    self.system_name = system_name
    self.number_of_zones = len(zones)
    self.zones = zones

我稍微打扫了一下,到了8号,离开了很多地方。你知道吗

相关问题 更多 >