让两个班级互动

时间:2011-07-22 22:40:53

标签: python class call return interaction

我无法让两个班级进行互动。这是我导入文件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行     回归“死亡” SyntaxError:'return'在函数外部

希望这个问题很清楚,谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

print "What is your name?"开始的行没有正确缩进。在python中,空白是重要的。

答案 1 :(得分:0)

在Python中,这不是如何子类化。

from youtest import MyTest   

class RunIt(MyTest): pass

r = RunIt()
r.iffit()

虽然在此示例中r = MyTest()可以正常工作。

您的SyntaxError是由于误用空格而触发的。每个缩进级别使用四个空格,这是Python中的标准,因此您可以清楚地看到事物的组织。

您还有另一个问题:return 'death'无法调用death,如果您想要的话,则需要return death()

最后,death()不会对exit执行任何操作,只需参考它即可。您需要exit()