Python @classmethod 为什么不能调用 @property 装饰的属性 ?

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

回到顶部