好的我一直在阅读关于在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?在我的实际代码中,我有更多的变量,它似乎是很多重复代码设置每种方法。
我意识到,对于简单的情况,它可能不是严格必要的,但我更愿意现在编写方法,以防万一我决定增加类的复杂性。
*“不过,如果我决定增加课程的复杂性,我宁愿现在编写方法。”* - 为什么不在需要时添加它们?只实现你现在需要的*,然后在代码增长时重构。您现在添加的用于支持可能发生或可能不会发生的扩展或功能的所有内容都只是噪声。 –