为什么我可以在一个函数中分配一个变量并在另一个函数中打印它?

问题描述 投票:0回答:1

我不明白为什么这段代码可以正常工作。也许我不明白Python中的函数和命名空间到底是什么?

示例1:

def f1():
    a = 1
    f2()

def f2():
    print(a)

a = 0
f1()

上面的代码返回 0。

示例2:

def f1():
    a = 1
    def f2():
        print(a)
    f2()

a = 0
f1()

上面的代码返回 1。

有什么区别?

python function scope
1个回答
0
投票

在示例 1 中,

f2
使用全局
a
,但在示例 2 中,它使用
a
函数作用域中的
f1
,因为
f2
是嵌套函数。换句话说,变量作用域的差异。你可以在这里

© www.soinside.com 2019 - 2024. All rights reserved.