Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
名称错误:名称';类别';未定义(Python)_Python_Nameerror_Defined - Fatal编程技术网

名称错误:名称';类别';未定义(Python)

名称错误:名称';类别';未定义(Python),python,nameerror,defined,Python,Nameerror,Defined,所以我正在尝试为基于文本的游戏保存和加载文件。。。 保存有效,如果再次保存,将覆盖保存。 但是加载时会出现名称错误 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_fil

所以我正在尝试为基于文本的游戏保存和加载文件。。。 保存有效,如果再次保存,将覆盖保存。 但是加载时会出现名称错误

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 identify():
全球惠普
全球atk
全球Def
全球社民党
全球ene

if re.match(r“warrior”,Class,re.I):在python中,全局的工作方式是它不仅将变量定义为全局变量。它将变量从全局名称空间(如果存在)添加到本地名称空间。如果不存在,它将创建一个全局实例并将其添加到本地名称中。您可能将
作为全局命名空间中的变量,但在
标识
函数本地命名空间中,
不存在。您需要将
Class
添加到
identify
的本地命名空间中。您可以通过添加行
全局类
来实现这一点。现在,本地名称空间引用了变量

def identify():
    global hp
    global atk
    global Def
    global spd
    global ene
    # You need to mention global Class as well
    global Class
    if re.match(r"warrior", Class, re.I): 
    print()

谁称之为级别和负载?那些在同一个模块中吗?全局变量是相对于当前模块的唯一全局变量!