Мой вопрос заключается в том, что интерпретатор выполняет следующие две части кода:
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
и намного проще:
class A(object):
@property
def x(self):
return ... #some complicated action
I.e., является интерпретатором достаточно умным для кэширования свойства x
?
Мое предположение заключается в том, что x
не меняется - найти это сложно, но как только вы его найдете один раз, нет причин снова его искать.