Python 为什么这个变量不是全局变量(不能在函数中使用)?

Python 为什么这个变量不是全局变量(不能在函数中使用)?,python,Python,我知道我必须使用global关键字来访问变量,但我的问题是 为什么它在函数中不可用 source = "C:/ALL IN ONE/Test File" temp = "C:/ALL IN ONE/Temp Folder" num_files = 0 def sort(): if not os.path.exists(temp): os.makedirs(temp) for folder_path, fo

我知道我必须使用global关键字来访问变量,但我的问题是 为什么它在函数中不可用

source = "C:/ALL IN ONE/Test File"
temp = "C:/ALL IN ONE/Temp Folder"
num_files = 0

def sort():
    if not os.path.exists(temp):
        os.makedirs(temp)
        
    for folder_path, folder, files in os.walk(source):
        for file in files:
            num_files += 1   # I can't seem to access the variable "num_files" outside the function
            if file.endswith("txt"):
                pass

在函数中定义变量
global
,如下所示:

num_files = 0

def sort():
    global num_files
    # rest of your code
在不将其声明为全局变量的情况下,要执行基本上是
num_files=num_files+1
num_files+=1
,函数将搜索初始化局部变量
num_files
的声明,以访问赋值右侧的值,但没有任何值,因此,它引发了
UnboundLocalError:赋值前引用的局部变量
异常


请参阅。

在函数中定义变量
global
,如下所示:

num_files = 0

def sort():
    global num_files
    # rest of your code
在不将其声明为全局变量的情况下,要执行基本上是
num_files=num_files+1
num_files+=1
,函数将搜索初始化局部变量
num_files
的声明,以访问赋值右侧的值,但没有任何值,因此,它引发了
UnboundLocalError:赋值前引用的局部变量
异常


请参阅。

这是一个问题。变量
num\u files
实际上在
global
范围内,但一旦打开函数,就离开了全局范围。在这种情况下,函数中的变量是函数的局部变量
sort
。请务必从gloabl范围接收您的变量,您需要您已经提到的关键字
global

这是一个问题。变量
num\u files
实际上在
global
范围内,但一旦打开函数,就离开了全局范围。在这种情况下,函数中的变量是函数的局部变量
sort
。请务必从gloabl范围接收您的变量,您需要您已经提到的关键字
global

OHH,谢谢,伙计!如果问题已解决,请将答案标记为已接受以关闭它@克洛基丹!对不起,我还是个新手,不用担心。谢谢:)哦,谢谢你,伙计!如果问题已解决,请将答案标记为已接受以关闭它@克洛基丹!对不起,我还是个新手,不用担心。谢谢:)非常感谢,伙计!非常感谢,伙计!