我正在用崇高的文本构建一个PyGame,但是当我运行批处理文件来启动它时,我得到了一个错误:
Traceback (most recent call last):
File "game.py", line 12, in <module>
player = player("Default", 1, 1, 1)
File "C:\Users\*****\Desktop\RPG\characters\player.py", line 8, in __init__
Character.__init__(self, name, hp)
File "C:\Users\*****\Desktop\RPG\characters\character.py", line 9, in __init__
player.dead = False
NameError: global name 'player' is not defined
Press any key to continue . . .
下面是我的档案:
在游戏.py文件:
在播放器.py文件:
# Player Base File
from character import *
class player(Character):
def __init__(self, name, hp, str, int):
Character.__init__(self, name, hp)
self.str = str
self.int = int
以及字符.py文件:
# Character Base File
class Character(object):
def __init__(self, name, hp):
self.name = name
self.hp = hp
player.dead = False
def attack(self, other):
pass
def update(self):
if self.hp <= 0:
player.dead = True
self.hp = 0
我该怎么办?在
不能有与您试图访问的包同名的变量。为局部变量选择除player之外的其他内容。在
而且,你的内心还是有问题的字符.py,因为该文件中没有任何名为player的定义,也没有声明全局。我想你想要的是
你要创造的角色。player是一个没有dead属性的远程类。在
你不能只改变一个位置:你必须改变名字那一方面的所有用法。您已经使用player来引用两个不同的东西:(1)一个具有str和int属性的类(顺便说一句:这些名称都有内置函数,因此这些名称不具区别);和(2)一个本地对象,它似乎是classplayer的实例。在
没有一个好方法可以把两者都用同一个名字。我建议用更像
^{pr2}$您还必须将对对象player的其他引用改为pov。在
此外,您似乎被当前程序中的各种错误弄糊涂了。请考虑重新开始;使用增量编程。写几行带有init方法的类定义和实例化并打印单个对象的主程序。当这行得通时,添加几行代码:也许是一些有意义的初始化。继续一次添加和测试几行代码,直到回到现在的复杂程度。在
这允许您一次只使用一个或两个错误进行密封。你已经做了一半了,所以我不认为你会花很长时间恢复你目前的工作水平。。。但是有了法律程序。在
1)变更
到
2)英寸播放器.py,}
class player
到{以及
3)在
character.py
中,请进行此更改 从到
相关问题 更多 >
编程相关推荐