首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cmd.Cmd对象不返回任何值

cmd.Cmd对象不返回任何值
EN

Stack Overflow用户
提问于 2014-06-14 23:08:13
回答 1查看 156关注 0票数 1

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

在某种程度上,我的cmd.Cmd对象会被嵌套。如果我说我正在运行命令提示符A,那么在某个时候,会在A中创建一个新的提示符B。当我的B完成时,我想再次将某个值返回给A。我所有的尝试都以返回None的内部命令提示而结束。为了更好地理解这种情况,我试图简化这个问题,并试图从一个cmd.Cmd对象中获得一个返回值。这就是我所拥有的:

代码语言:javascript
复制
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

然后在壳上我已经试过:

代码语言:javascript
复制
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对象返回任何值。一个人怎么能这样做,或者因为某种原因我不知道这是不可能的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-15 01:29:41

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

代码语言:javascript
复制
class Test(cmd.Cmd):
    # ...
    def cmdloop(self):
        cmd.Cmd.cmdloop(self)
        return self.value
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24225082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档