在 Python 中,我尝试在类中运行一个方法,但出现错误:
Traceback (most recent call last):
File "C:\Users\domenico\Desktop\py\main.py", line 8, in <module>
fibo.f()
TypeError: unbound method f() must be called with fibo instance
as first argument (got nothing instead)
代码:(swineflu.py)
class fibo:
a=0
b=0
def f(self,a=0):
print fibo.b+a
b=a;
return self(a+1)
脚本main.py
import swineflu
f = swineflu
fibo = f.fibo
fibo.f() #TypeError is thrown here
这个错误是什么意思?是什么导致了这个错误?
好的,首先,您不必将对模块的引用更改为不同的名称;你已经有一个参考(来自import
),你就可以使用它。如果您想要不同的名称,只需使用import swineflu as f
.
其次,您将获得对该类的引用,而不是实例化该类。
所以这应该是:
import swineflu
fibo = swineflu.fibo() # get an instance of the class
fibo.f() # call the method f of the instance
A 绑定方法是附加到对象实例的一个。一个未绑定方法当然,是not附加到一个实例。该错误通常意味着您正在类上而不是实例上调用该方法,这正是本例中发生的情况,因为您尚未实例化该类。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)