#python #python-2.7 #web2py-modules
#python #python-2.7 #web2py-модули
Вопрос:
Я работаю над простой игрой / приложением. Когда я вызываю переменную в web2py
представлении, я получаю эту ошибку:
quack= duck.quack()
TypeError: unbound method quack() must be called with duck instance as first argument (got nothing instead)
мои коды здесь:
В модуле
from gluon import *
class duck():
def quack():
return 'Quacks like a duck'
def walk():
return 'Walks like a person'
В контроллере
def data_filters():
fils = duck.quack()
return dict(fils=fils)
В представлении:
{{extend 'layout.html'}}
{{=fils}}
Ответ №1:
Как правило, вам необходимо создать экземпляр вашего класса, если вы хотите использовать его методы.
class duck():
def quack(self):
#...
x = duck()
fils = x.quack()
Однако, если методу не нужно ссылаться на self
объект или какие-либо атрибуты объекта, вы можете пометить его как статический метод и продолжить использовать duck.quack()
, как сейчас.
class duck():
@staticmethod
def quack():
#...