从方法类调用变量时出错

时间:2014-06-19 12:37:43

标签: python python-2.7 web2py-modules

正在开发一款简单的游戏/应用程序。当我在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 个答案:

答案 0 :(得分:1)

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

class duck():
    def quack(self):

#...

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

但是,如果方法不需要引用self或对象的任何属性,则可以将其标记为静态方法并继续使用duck.quack(),就像现在一样。

class duck():
    @staticmethod
    def quack():
        #...