怠惰属性¶
- class astropy.utils.decorators.lazyproperty(fget, fset=None, fdel=None, doc=None)[ソース]¶
ベースクラス:
property
その動作方式はproperty()に類似しているが,一度だけ値を計算する.
これは実質的に属性の計算結果を
__dict__
対象事例の.これは,ある属性の値を計算するのに有用であり,そうでなければこれらの属性は不変であるはずである.例えば:>>> class LazyTest: ... @lazyproperty ... def complicated_property(self): ... print('Computing the value for complicated_property...') ... return 42 ... >>> lt = LazyTest() >>> lt.complicated_property Computing the value for complicated_property... 42 >>> lt.complicated_property 42
本例に示すように,2回目
complicated_property
訪問されるとprint
文は実行されていない.1回目のアクセスのみオフ時の返却値complicated_property
返されました。デフォルトでは、setterとdeleterを使用して、それぞれ格納されていることを上書きして削除します。
__dict__
それがそうです。これらのデフォルト動作を実行する前に、任意のユーザによって指定された設定器または削除器が実行される。1つの例外は、ユーザ設定器がすでに新しい値を設定している場合、デフォルト設定器を実行しないことである。__dict__
この値を返しますNone
それがそうです。