当我在python输入框中调用inform时,它说我给了do_inform 2参数,但我只输入“inform”并单击“OK”。为什么说我提供两个论点?
import cmd
class DisplayWelcome(cmd.Cmd):
"""Welcome user to game"""
def do_inform(self):
k = input('Enter a letter')
print (k)
def main():
d = DisplayWelcome()
#d.do_greet()
d.do_inform()
d.cmdloop()
if __name__ == '__main__':
main()
答案 0 :(得分:1)
所有Cmd.do_*
方法都传递给命令行的其余部分,即使是空的。
在命令提示符下键入inform
时,该行的其余部分为空,因此Cmd
会调用self.do_inform('')
。
始终为所有do_*
方法提供该余数的参数;如果你愿意,你可以忽略它:
def do_inform(self, rest=None):
k = input('Enter a letter')
print (k)
cmd
library documentation并没有说明这一点;在cmd.cmdloop()
方法文档的顶部提到了:
反复发出提示,接受输入,解析收到的输入的初始前缀,并调度到操作方法,并将其余部分作为参数传递。