深入理解Python变量的作用域

2025-10-02 02:56:28

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
相关推荐
  • 阅读量:115
  • 阅读量:162
  • 阅读量:150
  • 阅读量:31
  • 阅读量:159
  • 猜你喜欢