我认为这个概念叫做重载。 现在我正在编写一个将提供 getter 和 setter 方法的类,但遇到了设计问题。
这两种方法都是单行代码,只需设置一个值或返回一个值。
def set_number(self, num): self.count = num def get_number(self): return self.count
通过做一些基本上将两种方法合二为一然后根据是否提供 num 参数来决定应该执行哪一行的方法来节省空间并使类“看起来”更小会更好吗?
或者我应该坚持清晰并将它们分开?有些人认为单独保留所有这些单行是一种“浪费空间”,而其他人则不同意并且更愿意将它们分开。
我会选择其中之一的任何原因?
最佳答案
在 Python 中,您应该根本不使用 getter 和 setter。而是直接引用 count
属性,例如打印 instance.count
或 instance.count = 5
其他语言中的 getter 和 setter 的意义在于封装和面向 future ,以防您需要向 getter 或 setter 添加逻辑。在 Python 中,您可以稍后使用 property
来完成此操作,这不会破坏您现有的 API。
@property
def number(self):
# do extra logic if necessary
return self.count
属性也可以有 setter - 参见:http://docs.python.org/library/functions.html#property
Python 不是 Java。 =)
额外的奖励阅读 Material :
关于python - python 中的 "Method overloading",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6598835/