目前我的代码遇到了一些麻烦。我正在制作一个非常基本的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()
答案 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):
#...