0

2つのクラスを相互作用させるのに問題があります。これが私がファイルyoutest.pyをインポートしている最初のクラスのコードです:

from youtest import MyTest   

class RunIt(object):

  def __init__(self):
    self.__class__ = MyTest

r = RunIt()
r.iffit()

このクラス(以下のコード)を介してクラスMyTestを実行しようとしています:

from sys import exit

class MyTest(object):

  def death(self):
    exit

  def iffit(self):

    oh_no = raw_input(">")

  print "What is your name?"

  if oh_no == "john":
    print "welcome john"

  else:
    print "game over"
    return 'death'

これを実行すると、次のようになります。

ファイル"youtest.py"、19行目return'death' SyntaxError:'return'関数外

この質問が十分に明確であることを願っています。助けてくれてありがとう。

4

2 に答える 2

2

から始まる行print "What is your name?"が正しくインデントされていません。Pythonでは空白が重要です。

于 2011-07-22T22:44:28.723 に答える
0

Pythonでは、これはサブクラス化する方法ではありません。

from youtest import MyTest   

class RunIt(MyTest): pass

r = RunIt()
r.iffit()

この例でr = MyTest()は問題なく動作しますが。

あなたSyntaxErrorは空白の誤用によって引き起こされます。Pythonの標準のように、インデントレベルごとに4つのスペースを使用して、物事の構成を明確に確認できるようにします。

あなたは別の問題を抱えています:return 'death'電話をかけません、それがあなたが望むものであるならばあなたは電話deathをする必要がありreturn death()ます。

最後に、death()は何もしませんexit。参照するだけです。あなたがする必要がありますexit()

于 2011-07-22T22:50:24.257 に答える