0

我正在开发一个简单的游戏/应用程序。当我在视图中调用变量时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}}  
4

1 回答 1

1

通常,如果要使用类的方法,则需要创建类的实例。

class duck():
    def quack(self):

#...

x = duck()
fils = x.quack()

但是,如果该方法不需要引用self对象或对象的任何属性,则可以将其标记为静态方法并照常使用duck.quack()

class duck():
    @staticmethod
    def quack():
        #...
于 2014-06-19T12:53:41.043 回答