我的问题是解释器运行相同的以下两段代码:
class A(object):
def __init__(self):
self.__x = None
@property
def x(self):
if not self.__x:
self.__x = ... #some complicated action
return self.__x
Run Code Online (Sandbox Code Playgroud)
而且更简单:
class A(object):
@property
def x(self):
return ... #some complicated action
Run Code Online (Sandbox Code Playgroud)
即,解释器是否足够智能缓存属性x?
我的假设是x不会改变 - 发现它很难,但一旦你找到它就没有理由再找到它.