命名空间与作用域

命名空间与作用域


 1"""
 2Author: wangy325
 3Date: 2024-07-17 19:24:01
 4Description: 作用域
 5"""
 6
 7
 8def __scope_test():
 9
10    def do_local():
11        # 内层局部作用域
12        spam = 'local spam'
13
14    def do_nonlocal():
15        # 使用nonlocal可以改变外层变量对spam的绑定
16        nonlocal spam
17        spam = 'nonlocal spam'
18
19    def do_global():
20        # 使用global改变全局作用域对spam的绑定
21        global spam
22        spam = 'global spam'
23    # 函数内局部作用域
24    spam = 'spam' 
25    do_local()
26    print('After local assignment: ', spam)
27    do_nonlocal()
28    print('After nonlocal assignment: ', spam)
29    do_global()
30    print('After global assignment: ', spam)
31
32
33__scope_test()
34# 在当前模块的全局作用域访问 spam
35# 如果没有在局部使用global声明,你看这里打印spam报不报错就完了
36print("In global scope: ", spam)