What is the benefit to using a 'get function' for a python class?
例如,在下面的代码中,getname函数有什么好处?
1 2 3 4 5 6 7 | class Node(object): def __init__(self, name): self.name = str(name) def getName(self): return self.name def __str__(self): return self.name |
没有好处。从其他语言(例如Java)到Python的人有时会这样做,因为他们习惯了。在Python中,没有必要创建这些类型的getter和setter,它们除了直接获取和设置底层变量之外什么都不做。属性允许您在以后需要执行比获取/设置值更复杂的操作时透明地交换逻辑。
使用getter/setter可能有好处,但在Python中,没有真正的理由使用普通的getter/setter,而不只是直接获取/设置属性。我能想到的唯一原因是,如果您必须与一个现有的API保持兼容性,而这个API需要一组特定的方法可用。
不要使用getter,只需直接访问class属性。通常getter用于访问私有/受保护的属性,但在Python中没有这样的属性。使用getter的另一个原因是,您可以在返回值之前做一些工作,在您的情况下,您可以不做,但这可能会在将来发生变化,不用担心,当时间到来时,只需开始使用
1 2 3 | @property def name(self): return self._name |
您仍然可以这样访问它,
我希望生产代码使用
也许程序员会制作
但总的来说,正如其他人所说,这不是你通常会看到的。
没有了。它们在python中是不必要的,并且被广泛建议不要使用。