【发布时间】:2014-10-14 19:36:30
【问题描述】:
所以我正在尝试为基于文本的游戏制作保存和加载文件... 保存有效,如果再次保存,则会覆盖保存。 但是加载会引发 NameError。
def save():
my_file = open("save.txt", "w")
my_file.write(Class + "\n")
my_file.write(level + "\n")
my_file.write(str(hp) + "\n")
my_file.write(str(atk) + "\n")
my_file.write(str(Def) + "\n")
my_file.write(str(spd)+ "\n")
my_file.write(str(ene)+ "\n")
my_file.write(str(race1)+ "\n")
my_file.close()
def load():
infile = open("save.txt")
lines = infile.readlines()
line_number = 0
while line_number < len(lines):
Class = lines[line_number]
level = lines[line_number + 1]
hp = lines[line_number + 2]
atk = lines[line_number + 3]
Def = lines[line_number + 4]
spd = lines[line_number + 5]
ene = lines[line_number + 6]
race1 = lines[line_number + 7]
line_number += 8
print(Class, level, hp, atk, Def, spd, ene, race1)
infile.close()
identify()
以上是保存和加载定义..
这是类输入定义:
def class_level():
global Class
global level
Class = input("Please input your class: ")
print()
level = input("Please input your level: ")
print()
race()
这里是识别定义:
def identify():
global hp
global atk
global Def
global spd
global ene
if re.match(r"warrior", Class, re.I): <---- This is the line the error is on, Class not defined
print()
谁能告诉我我做错了什么?它将加载文件并显示它.. 但是然后说在 def 标识中没有定义 Class。 谢谢。
【问题讨论】:
-
谁调用class_level并加载?它们在同一个模块中吗?全局变量只是相对于当前模块的全局变量!