でアクセスしようとしたときに評価されない属性を遅延させるデコレータを作成することは可能hasattr()
ですか? 私はそれを怠惰にする方法を考え出しましたが、hasattr()
時期尚早に評価します。例えば、
class lazyattribute:
# Magic.
class A:
@lazyattribute
def bar(self):
print("Computing")
return 5
>>> a = A()
>>> print(a.bar)
'Computing'
5
>>> print(a.bar)
5
>>> b = A()
>>> hasattr(b, 'bar')
'Computing'
5
# Wanted output: 5