深入理解Python变量的作用域

 时间:2026-02-16 10:55:48

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 testin

  

if __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变量的作用域

  • Python 名称空间和作用域
  • python数字、变量和字符串
  • 如何理解python的闭包
  • python设置变量
  • 解读python中的变量
  • 热门搜索
    胆囊息肉最佳治疗方法 射里面了怎么办 宝宝发烧39度怎么办 abcc式词语大全 新生儿吐奶怎么回事 钓鱼方法 瘦腿的方法 学英语最好的方法 黄瓜怎么做好吃 冶疗近视的方法有哪些