我只是在研究面向对象的Python ,真的不知道什么时候用self
,什么不用.
尤其是当我想要创建一个默认获取对象实例输入的方法,并且还想让它像一个可以获取自定义参数输入的普通方法一样工作时,
对于该方法的所有参数,我都要输入if x is None: x = self.x
,这有点麻烦.
示例如下所示.
from dataclasses import dataclass
@dataclass
class PlusCalculator():
x: int = 1
y: int = 2
result: int = None
def plus(self, x=None, y=None):
if x is None: x = self.x ## the bothersome part
if y is None: y = self.y
result = x + y
self.result = result ## also confusing...is it good way?
return result
pc = PlusCalculator()
print(pc.plus())
print(pc.plus(4,5))
有没有什么好办法用实例变量作为函数参数的缺省值?