例如,在下面的代码中,getName函数的好处是什么?
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,它们除了直接获取和设置基础变量外什么也不做。 如果以后需要执行比获取/设置值更复杂的操作,则属性可以透明地交换逻辑。
使用getters / setters可能会有好处,但是在Python中,没有真正的理由使用琐碎的getters / setters而不是直接获取/设置属性。我能想到的唯一原因是,如果您必须与需要某些方法集的现有API保持兼容性。