【发布时间】:2017-06-29 15:07:15
【问题描述】:
我正在(尝试)使用 Python 2.7.12 在 Pygame 中重新创建 Mario 级别 1-1。这是两个相关文件:
main.py: http://pastebin.com/HXmBdJ2a
马里奥.py:
http://pastebin.com/29xu1tMM
我的问题是:当我运行 main.py 时,解释器给了我这个错误信息:
Traceback (most recent call last):
File "C:/path/to/main.py", line 6, in <module>
import mario
File "C:\path\to\mario.py", line 7, in <module>
import main
File "C:\path\to\main.py", line 47, in <module>
game = Game()
File "C:\path\to\main.py", line 26, in __init__
self.main_loop()
File "C:\path\to\main.py", line 39, in main_loop
self.Mario = mario.Mario()
AttributeError: 'module' object has no attribute 'Mario'
Process finished with exit code 1
我很困惑,就像 mario.py 对马里奥课程一样。如果我尝试运行 mario.py,我会收到以下错误:
Traceback (most recent call last):
File "C:/path/to/mario.py", line 7, in <module>
import main
File "C:\path\to\main.py", line 6, in <module>
import mario
File "C:\path\to\mario.py", line 12, in <module>
sheet = pygame.image.load("../assets/images/MarioLuigiSprites.png").convert()
pygame.error: No video mode has been set
Process finished with exit code 1
谁能给我解释一下?
编辑:我通过添加来修复它:import sys
sys.path.insert(0, "scripts")
import mario
【问题讨论】:
-
尝试导入 mario.Mario
-
另外,请尝试这样做
screen = pygame.display.set_mode((num, num))以避免出现无视频模式错误 -
我试过 import mario.Mario,得到:ImportError: No module named Mario
-
问题在于 Game 类没有名为 Mario 的属性,因为您没有在 Game 类的
__init__中定义它。要么在 Game 类的__init__中有self.Mario = mario.Mario(),要么只调用Mario = mario.Mario()。另外,你为什么在mario.py的末尾打电话给mario = Mario()?您应该尝试删除它。
标签: python python-2.7 pygame attributeerror