Python @classmethod 为什么不能调用 @property 装饰的属性 ?
Python @classmethod
为什么不能调用 @property
装饰的属性 ?
AttributeError: 'property' object has no attribute
依然不是没清楚
回答:
看看这个帖子:Python:如何添加 @classmethod @property.setter ,弄清楚它们两个的概念和区别你就了解了。看下写着两个例子:
class MyClass: def __init__(self, value):
self._value = value
@property
def value(self):
return self._value
@classmethod
def show_value(cls):
print(cls.value) # 这里会报错
obj = MyClass(10)
obj.show_value()
不报错:
class MyClass: def __init__(self, value):
self._value = value
@property
def value(self):
return self._value
@classmethod
def show_value(cls, value):
obj = cls(value)
print(obj.value)
MyClass.show_value(10)
了解它们的概念和用处:python类方法中使用:修饰符@staticmethod和@classmethod的作用与区别,还有装饰器@property的使用
以上是 Python @classmethod 为什么不能调用 @property 装饰的属性 ? 的全部内容, 来源链接: utcz.com/p/938981.html