深入理解Python变量的作用域

2025-05-21 21:53:01

1、打开Python开发工具IDLE,新建‘所鼙艘疯zuoyongyu.py’文件,并编写代码如下:def test(): a = 'a' print (a)if __name__ == '__main__': test() print (a)

深入理解Python变量的作用域

2、F5运行代码,先执行了test函数打印出变量a,后报错,因为a在函数里定义,作用域只在函数内,在函数外使用会报错,a就是通常说的局部变量。

深入理解Python变量的作用域

3、将变量a的定义放到函数外,代码如下:a = 'a'def test(): print (a)if __name__ == '__main__': test() print (a)

深入理解Python变量的作用域

4、F5运行代码,打印了两次变量a的值,是因为a是全局变量,在函数体外定义,作用域是整个文件内。

深入理解Python变量的作用域

5、嵌套函数变量作用域,外层函数定义的变量在内层有效,外层函数碌巫谫浪执行完后,变量才被释放,修改代码如下:def test(): a = 'a' print (a) def testin(): print (a) return testinif __name__ == '__main__': tw = test() tw()

深入理解Python变量的作用域

6、F5运行代码,可以发现变量a的值被打印的两次,说明内层函数执行时同样可以访问到外层的变量a

深入理解Python变量的作用域

7、再次修改代码,测试函数体内修改全局变量,代码如下:a = 'a'def test(): a = 'abc' print (a)if __name__ == '__main__': test() print (a)

深入理解Python变量的作用域

8、F5运行代码,可以发现变量a的值被打印的两次,两次值不同,函数内改变同名全局变量的值,并不影响全局变量本来的值,因为根本就是两个变量。

深入理解Python变量的作用域

9、为验证上一步的观点,打祥缮乖贝印出变量a的地址修改代码如下:a = 'a'def test烫喇霰嘴(): a = 'abc' print (id(a))if __name__ == '__main__': test() print (id(a))

深入理解Python变量的作用域

10、F5运行代码,可以发现变量a的地址不同,证明就是两个变量。

深入理解Python变量的作用域
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢