MxL*_*evs 1 python overloading
我认为这个概念叫做重载.现在我正在编写一个提供getter和setter方法的类,并且遇到了设计问题.
两种方法都是单行,只需设置一个值,或返回一个值.
def set_number(self, num): self.count = num def get_number(self): return self.count
通过做一些基本上将两个方法合并为一个然后根据是否提供num参数来决定应该执行哪一行来节省空间并使类"看起来更小"会更好吗?
或者我应该坚持清晰并保持分离?有些人认为将所有这些单线保留在自己身上是"浪费空间",而其他人不同意并且更喜欢将它们分开.
我选择其中一个的原因是什么?
Fog*_*ird 10
在Python中,您根本不应该使用getter和setter.而是直接引用count属性,例如print instance.count或instance.count = 5
其他语言中的getter和setter的要点是封装和未来验证,以防您需要向getter或setter添加逻辑.在Python中,您可以通过稍后使用来完成此操作property,这不会破坏您现有的API.
@property
def number(self):
# do extra logic if necessary
return self.count
Run Code Online (Sandbox Code Playgroud)
属性也可以有setter - 请参阅:http://docs.python.org/library/functions.html#property
Python不是Java.=)
额外奖金阅读材料: