在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
import swineflu as f
其次,您将获得对该类的引用,而不是实例化该类。
所以这应该是:
import swineflu fibo = swineflu.fibo() # get an instance of the class fibo.f() # call the method f of the instance
甲 绑定的方法 是一个被附加到对象的实例。的 未结合的方法 是,当然,一个是 未 附连到一个实例。该错误通常意味着您是在类而不是实例上调用方法,这正是在这种情况下发生的事情,因为您没有实例化该类。