__init__中的Python属性,带有双重赋值

时间:2017-07-16 13:05:28

标签: python properties init

我有这段代码:

class Human(object):

    def __init__(self, amount):
        self._age = self.age = amount

    @property
    def age(self):
        return self._age

    @age.setter
    def age(self, amount):
        if amount > 50:
            self._age = amount
       else:
            print('You are too young')

我想知道的是,传递给__init__的参数的可行方法是否通过属性中实现的某种逻辑?我在这里浏览了很多答案并阅读了文档,但我仍然找不到任何关于这样的事情。在创建类的测试实例时,代码按预期工作:

bob = Human(30)

产生适当的警告。之后尝试设置name属性也是如此,当给出正确的参数(在这种情况下,任何数字> 50)时,一切似乎都按预期工作。对此有什么警告吗?如果是,那么解决这个问题的最恐怖的方法是什么?

0 个答案:

没有答案