Im just beginning to mess around a bit with classes; however, I am running across a problem.
class MyClass(object):
def f(self):
return 'hello world'
print MyClass.f
The previous script is returning <unbound method MyClass.f> instead of the intended value. How do I fix this?
MyClass.frefers to the function object f which is a property of MyClass. In your case, f is an instance method (has a self parameter) so its called on a particular instance. Its “unbound” because you’re referring to f without specifying a specific class, kind of like referring to a steering wheel without a car.You can create an instance of MyClass and call f from it like so:
(This specifies which instance to call f from, so you can refer to instance variables and the like.)
You’re using f as a
static method. These methods aren’t bound to a particular class, and can only reference their parameters.A static method would be created and used like so: