【发布时间】:2016-11-15 22:58:45
【问题描述】:
Python 支持 @property 装饰器,例如:
class MyClass(object):
def __init__(self):
self._friend_stack = [1]
@property
def current_friend(self):
return self._friend_stack[0]
myobj = MyClass()
myobj.current_friend # 1
类是否可以有这样的东西,所以行为是这样的(例如,连同 setter 和 getter 方法):
class MyClass(object):
_friend_stack = [1]
@property
def current_friend(cls):
return cls._friend_stack[0]
MyClass.current_friend # 1
【问题讨论】:
-
想你想要
@classmethod -
@classmethod允许我做MyClass.current_friend(),但不允许我做MyClass.current_friend = 2。我想要后一种行为。我还希望有机会在访问变量时运行代码。 -
你能展示一个类属性有用的虚构用例吗?大多数属性都依赖
self在幕后做一些事情。
标签: python