0

我无法让两个班级进行互动。这是我要导入文件 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' outside function

希望这个问题足够清楚,感谢您的帮助。

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 中是标准的,因此您可以清楚地看到事物的组织。

你还有另一个问题:return 'death'不会打电话deathreturn death()如果这是你想要的,你需要。

最后,death()不会对 做任何事情exit,只是引用它。你需要做exit()

于 2011-07-22T22:50:24.257 回答