让两个类互动

0 投票
2 回答
1439 浏览
提问于 2025-04-16 22:06

我在让两个类互相作用时遇到了问题。这里是我导入文件 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' 语法错误:'return' 在函数外部

希望这个问题描述得够清楚,谢谢大家的帮助。

2 个回答

2

print "What is your name?" 开始的那几行代码没有正确缩进。在Python中,空格和缩进是很重要的。

0

在Python中,这样并不是正确的子类化方式。

from youtest import MyTest   

class RunIt(MyTest): pass

r = RunIt()
r.iffit()

虽然在这个例子中,r = MyTest() 是可以正常工作的。

你的SyntaxError错误是因为你在空格的使用上出了问题。每个缩进级别要用四个空格,这是Python的标准写法,这样可以让你清楚地看到代码的结构。

你还有另一个问题:return 'death' 只是返回了字符串'death',并不会调用death这个函数。如果你想调用它,应该用return death()

最后,death() 只是引用了exit,并不会执行它。你需要写成exit()来真正调用它。

撰写回答