Am working on a simple game/app. When I call a variable on web2py
view, I get this error:
quack= duck.quack()
TypeError: unbound method quack() must be called with duck instance as first argument (got nothing instead)
my codes are here:
In the module
from gluon import *
class duck():
def quack():
return 'Quacks like a duck'
def walk():
return 'Walks like a person'
In the controller
def data_filters():
fils = duck.quack()
return dict(fils=fils)
In the view:
{{extend 'layout.html'}}
{{=fils}}
Typically, you need to create an instance of your class if you want to use its methods.
However, if the method doesn't need to refer to
self
or any attributes of the object, you can mark it as a static method and continue usingduck.quack()
as you are now.