Skip to main content
 首页 » 编程设计

python之python 中的 "Method overloading"

2025年05月04日15mayingbao

我认为这个概念叫做重载。 现在我正在编写一个将提供 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 :