好的我一直在閱讀關於在Python中使用@property裝飾器,而不是用於獲取,設置和刪除的特定方法。下面顯示了一些示例代碼。在Python中自動設置getter,setter和deleter
class Person(object):
def __init__(self):
self._firstName = None
self._lastName = None
self._age = None
@property
def firstName(self): return self._firstName
@firstName.setter
def firstName(self, val): self._firstName = val
@firstName.deleter
def firstName(self): del self._firstName
@property
def lastName(self): return self._lastName
@lastName.setter
def lastName(self, val): self._lastName = val
@lastName.deleter
def lastName(self): del self._lastName
@property
def age(self): return self._age
@age.setter
def age(self, val): self._age = val
@age.deleter
def age(self): del self._age
Peter = Person()
Peter.firstName = 'Peter'
Peter.lastName = 'Smith'
Peter.age = 21
print ' '.join([Peter.firstName, Peter.lastName])
正如您所看到的,該示例中的大部分代碼都致力於定義方法。
我的問題是是否有一種方法可以爲我的每個變量自動分配getter,setter和deleter?在我的實際代碼中,我有更多的變量,它似乎是很多重複代碼設置每種方法。
我意識到,對於簡單的情況,它可能不是嚴格必要的,但我更願意現在編寫方法,以防萬一我決定增加類的複雜性。
*「不過,如果我決定增加課程的複雜性,我寧願現在編寫方法。」* - 爲什麼不在需要時添加它們?只實現你現在需要的*,然後在代碼增長時重構。您現在添加的用於支持可能發生或可能不會發生的擴展或功能的所有內容都只是噪聲。 –