class Math:
def __init__(self, number):
self.number = number
def add(self, add_num):
return self.number + add_num
def sub(self, sub_num):
return self.number - sub_num
数学(5).add(5)
我按预期得到了 10
但如果我执行 Math(5).add(5).sub(3)
:
我收到此错误 AttributeError: 'int' object has no attribute 'sub'
最佳答案
要使其正常工作,您的方法需要返回 self
(或 Math
的新实例):
class Math:
def __init__(self, number):
self.number = number
def add(self, add_num):
self.number += add_num
return self
# or:
# return Math(self.number + add_num)
def sub(self, sub_num):
self.number -= sub_num
return self
# or:
# return Math(self.number - add_num)
def __str__(self):
return str(self.number)
m = Math(5).add(5).sub(3)
print(m)
# 7
add
现在的行为更像 __iadd__
.
关于python - 为类分配两个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55470013/