コードget__:違い__、__
class Pizza:
def __init__(self, toppings):
self.toppings = toppings
self._pineapple_allowed = False
@property
def pineapple_allowed(self):
return self._pineapple_allowed
@pineapple_allowed.setter
def pineapple_allowed(self, value):
if value:
password = input("Enter the password: ")
if password == "Sw0rdf1sh!":
self._pineapple_allowed = value
else:
raise ValueError("Alert! Intruder!")
を私は@<func>.setter
デコレータは単なるオブジェクトで__set__
機能を上書きするとどのように異なるか混乱しています。 @<func>.getter
および__get__
と同じです。
そのため、クラス内の変数を設定するだけでは、@property
の使用例は考えられません。
私はこれについてすべて間違っていると思いますか? __get__, __set__ and __delete__
が記述プロトコル自体の魔法の方法ですしながら、あなたは、あなたのケースcls.pineapple_allowed
には、単一のクラス属性を制御する「@property」ディスクリプタに