让两个类互动
我在让两个类互相作用时遇到了问题。这里是我导入文件 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()
来真正调用它。