Python cmd.cmd对象不';不返回任何值

Python cmd.cmd对象不';不返回任何值,python,python-cmd,Python,Python Cmd,我目前正在使用Python的cmd模块创建一个基于命令的游戏 在某一点上,我的cmd.cmd对象被嵌套。如果我说我正在运行命令提示符A,则在某个点上,在A内会创建一个新的提示符B。我想,当我的B完成时,再次将某个值返回到a。我所有的试验都以内部命令提示返回None而结束。为了更好地理解这种情况,我尝试简化问题,只是尝试从cmd.cmd对象中获取返回值。这就是我所拥有的: import cmd class Test(cmd.Cmd): def __init__(self, value):

我目前正在使用Python的
cmd
模块创建一个基于命令的游戏

在某一点上,我的
cmd.cmd
对象被嵌套。如果我说我正在运行命令提示符
A
,则在某个点上,在
A
内会创建一个新的提示符
B
。我想,当我的
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
然后在shell我已经试过了:

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
对象返回任何值。如何才能做到这一点,或者由于某种原因我不知道这是不可能的?

在调用超类版本的
cmdloop()
后,可以在子类中重新定义
cmdloop()
,以返回特定值:

类测试(cmd.cmd):
# ...
def cmdloop(自):
cmd.cmd.cmdloop(自)
回归自我价值

谢谢。这是有道理的,但我没有想到:P