我目前正在使用 Python 的cmd
模块创建一个基于命令的游戏。
在某个时刻,我的cmd.Cmd
对象会嵌套。如果我说我正在运行命令提示符A
,那么在某个时候B
会在其中创建一个新提示符A
。我想,当我B
完成时,再次返回某个值A
。我所有的试验都以内部命令提示返回而告终None
。为了更好地理解这种情况,我尝试简化问题并尝试从cmd.Cmd
对象中获取返回值。这就是我所拥有的:
import cmd
class Test(cmd.Cmd):
def __init__(self, value):
cmd.Cmd.__init__(self)
self.value = value
def do_bye(self, s):
return True
def postloop(self):
print("Entered the postloop!")
return self.value
然后在我已经尝试过的外壳上:
a = Test("bla bla")
print(a.cmdloop())
# after the "bye" command it prints None
print(Test("bla bla").cmdloop())
# after the "bye" command it ALSO prints None
a = Test("safsfa").cmdloop()
print(a)
# Also prints None
我似乎无法让cmd.Cmd
对象返回任何值。怎么能做到这一点,或者由于某种我不知道的原因是不可能的?