所以我在这里搜索了43个其他练习题,没有人遇到过这个问题。
供参考:http://learnpythonthehardway.org/book/ex43.html
创建完全按照原样显示的游戏(据我所知),我不能为我的生活弄清楚如何让它运行。这是我得到的错误:
Traceback (most recent call last):
File "ex43.py", line 220, in <module>
a_game.play()
File "ex43.py", line 20, in play
next_scene_name = current_scene.enter()
AttributeError: 'function' object has no attribute 'enter'
我的所有场景在开始时都有一个输入属性,就我所知,所有场景似乎都被正确格式化了。游戏应该看到“.enter()”并直接在“CentralCorridor”类中打印它下面的内容。有谁知道如何解决这个错误?
以下是中央走廊场景的一小部分:
class CentralCorridor(Scene):
def enter(self):
print "bla"
print "more bla"
以下是引擎代码的外观:
class Engine(object):
def __init__(self, scene_map):
self.scene_map = scene_map
def play(self):
current_scene = self.scene_map.opening_scene
last_scene = self.scene_map.next_scene('finished')
while current_scene != last_scene:
next_scene_name = current_scene.enter()
current_scene = self.scene_map.next_scene(next_scene_name)
current_scene.enter()
感谢您的帮助!
答案 0 :(得分:2)
正如我在评论中所说:缺少()
!
def play(self):
current_scene = self.scene_map.opening_scene # <--- HERE !!!
()
右侧是函数调用,该语句将影响对current_scene
的调用的结果。()
,该语句将current_scene
引用功能本身。