在python中创建属性与getter和setter的列表

2024-09-27 23:26:59 发布

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

class OurAtt():
    def __init__(self):
        pass

class OurClass:

    def __init__(self):
        self.__OurAtt = OurAtt()

    @property
    def OurAtt(self):
        return self.__OurAtt

    @OurAtt.setter
    def OurAtt(self, val):
        if val < 0:
            self.__OurAtt = 0
        elif val > 1000:
            self.__OurAtt = 1000
        else:
            self.__OurAtt = val


x = OurClass()
x.OurAtt.Var1 = 1
print x.OurAtt.Var1

问题:

  1. 如何创建一个包含100个变量的列表,比如x。乌拉特.Var1,x。乌拉特·瓦尔2.. 十。瓦拉特100并给它们赋初值1,2…100。

  2. 这样做是可能的。我们的增值税100..100..1]?基本上需要有属性的列表。


Tags: self列表returnifinitdefpropertyval
1条回答
网友
1楼 · 发布于 2024-09-27 23:26:59

不要创建单独的varX属性,不。您可以使用^{}^{}方法创建一个新对象,并使用x.your_attr[X]订阅表示法:

class ListLike(object):
    def __init__(self):
        self._values = list(range(101))

    def __len__(self):
        return len(self._values)

    def __getitem__(self, index):
        return self._values[index]

    def __setitem__(self, index, value):
        if not 0 <= index < len(self):
            raise IndexError(index)
        self._values[index] = max(0, min(1000, val))

然后将其用作属性:

^{pr2}$

相关问题 更多 >

    热门问题