Python(未绑定方法wrongCommand.wrong)

时间:2013-09-26 00:19:26

标签: python

目前我的代码遇到了一些麻烦。我正在制作一个非常基本的RPG,并遇到了这个问题: (unbound方法wrongCommand.wrong) 我也运行python 2.7.5和Windows 7。

这是我的代码:

import os
class wrongCommand():
    def wrong():
        os.system("cls")
        print "Sorry, the command that you entered is invalid."
        print "Please try again."


def main():
    print "Welcome to the game!"
    print "What do you want to do?"
    print "1.) Start game"
    print "2.) More information/Credits"
    print "3.) Exit the game"
    mm = raw_input("> ")
    if mm != "1" and mm != "2" and mm != "3":
        print wrongCommand.wrong
        main();

main()

1 个答案:

答案 0 :(得分:2)

首先,你想要改变

print wrongCommand.wrong

print wrongCommand.wrong()

(注意:增加开放和关闭的parens)

但是你得到了从wrong方法打印的行以及该方法的返回值,该方法当前为None。

那么我可能会改变

print wrongCommand.wrong()

简单地

wrongCommand.wrong()

(注意:删除print语句)

或者,你可以让wrong() 返回一个字符串,而不是打印一个字符串,然后这一行

print wrongCommand.wrong()

没关系。


您必须从类实例调用wrong()方法,例如

wc = wrongCommand() # Create a new instance
wc.wrong()

或只是

wrongCommand().wrong()

在任何一种情况下,您都必须将wrong()方法定义更改为

def wrong(self):
    #...

或者你会得到一个错误,例如“错误()期望正好1个参数,没有”。

或者您可以将错误的方法定义为类方法或静态方法:

@staticmethod
def wrong():
    # ...

@classmethod
def wrong(cls):
    #...