关于变量作用域,运行结果和教材不一样。。。
python规定:加载变量的优先级顺序依次是:python 内置作用域 > 当前模块中的全局(文件从上而下读取)> 外层作用域 > 局部作用域。
教材中,列出下面这例子,结果也是 10 (上层函数变量的结果)
但是,我实际运行的结果为 2 (全局变量的结果)(python 3.7.6)
这就奇怪了。
程序代码:
first1 = 2 # 全局变量 def in_numbers(): second = 20 # 嵌套的局部变量 print(first1) def numbers(): first1=10 # 局部变量 in_numbers() numbers()
请教大家,是我理解错了?