In Python, I\'m trying to run a method in a class and I get an error:
Traceback (most recent call last):
File \"C:\\Users\\domenico\\Desktop\\py\\main.py\"
f
is an (instance) method. However, you are calling it via fibo.f
, where fibo
is the class object. Hence, f
is unbound (not bound to any class instance).
If you did
a = fibo()
a.f()
then that f
is bound (to the instance a
).
OK, first of all, you don't have to get a reference to the module into a different name; you already have a reference (from the import
) and you can just use it. If you want a different name just use import swineflu as f
.
Second, you are getting a reference to the class rather than instantiating the class.
So this should be:
import swineflu
fibo = swineflu.fibo() # get an instance of the class
fibo.f() # call the method f of the instance
A bound method is one that is attached to an instance of an object. An unbound method is, of course, one that is not attached to an instance. The error usually means you are calling the method on the class rather than on an instance, which is exactly what was happening in this case because you hadn't instantiated the class.