cmd
現在、Python のモジュールを使用してコマンド ベースのゲームを作成しています。
ある時点で、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
オブジェクトに値を返させることができないようです。どうすればそれを行うことができますか、それとも私が知らない何らかの理由で不可能ですか?