class A:
def add_f(self,a,b):
return a+b
class B:
def sum_f(self,a,b,c):
return A.add_f(a,b) + c
B1= B()
print B1.sum_f(1,2,3)
Traceback (most recent call last):
File "C:/Users/wxu/Documents/test.py", line 10, in <module>
print B1.sum_f(1,2,3)
File "C:/Users/wxu/Documents/test.py", line 7, in sum_f
return A.add_f(a,b) + c
TypeError: unbound method add_f() must be called with A instance as first argument (got int instance instead)
当我没有self for sum(self,a,b,c)时,它给了我一个错误:
Traceback (most recent call last):
File "C:/Users/wxu/Documents/test.py", line 10, in <module>
print test1.sum_f(1,2,3)
TypeError: sum_f() takes exactly 3 arguments (4 given)
为什么? 如何调用B类中的A类函数add_f?谢谢你的帮助。
有几件事。
self
作为第一个参数。A()
时修订代码:
更新: 谢谢你采纳我的建议,但你还是漏掉了一些东西。在类B中,您从类a调用一个方法,但也需要括号!在B类中,将A类称为:
A().add_f(a, b)
简单的修复,您只需要打开和关闭类声明上的括号,这样
class B
就变成了class B()
(同样的事情也适用于类A)。此外,还需要添加某种变量(如self)作为类内声明的每个方法的第一个参数。您永远不需要传递任何东西作为第一个参数来填充self,因为python将为您这样做。至于你的A.add_ff问题,你只需要像对B做的那样,把它实例化为一个类似A1的A对象,然后调用A1的方法。
相关问题 更多 >
编程相关推荐