NamedObject
属性を持つクラスがあるとしますname
。セッターを使用する必要がある場合は、最初に次のようにゲッターを定義する必要があります (推測しますか?)。
class NamedObject:
def __init__(self, name):
self.name = name
@property
def name(self):
return self._name
今、セッター内で、ゲッターまたは実際の属性self._name
を使用する必要があるかどうか疑問に思っていましたか? self.name
名前を設定するときは、オフにします。を使用する必要があります_name
が、セッターの内側にいるときはどうですか? 例えば:
@name.setter
def name(self, value):
if self._name != str(value): # Or should I do 'if self.name != value' ?
self.doStuff(self._name) # Or doStuff(self.name) ?
self.doMoreStuff()
self._name = str(value)
どちらを使用するかは実際に重要であり、なぜ一方を他方よりも使用するのですか?