首页 > 编程语言 > 详细

python 里内嵌函数是可以修改外部环境里的变量的

时间:2019-11-24 10:19:59      阅读:101      评论:0      收藏:0      [点我收藏+]

python 里内嵌函数是可以修改外部环境里的变量的

关键是细节. 如果是简单变量类型, 那么不可以. 但是如果是容器类变量, 则没问题了.
代码如下:

class G:
    pass
def f():
    a=11
    b=22
    x=[1, 2, 3]
    g=G()
    g.abc=2
    def iner():
        global c # 如果想要把内部变量传递到外部环境里, 就必须先在内部函数里声明为全局变量
        c=a+b
        # b *=100  # 内部函数不能修改 简单型外部变量
        
        x.append([4,5,6]) # 但是可以修改容器类外部变量, 比如list型的
        print('x=', x)
        print(a,b,c)
        print(x)
        
        g.abc=200
        g.x=555
        print(g.abc)
    iner()
    print(a,b,c)
    print(x)
    print(f'g.abc={g.abc}')
    print(g.x)
    

运行结果:

f()

x= [1, 2, 3, [4, 5, 6]]
11 22 33
[1, 2, 3, [4, 5, 6]]
200
11 22 33
[1, 2, 3, [4, 5, 6]]
g.abc=200
555

python 里内嵌函数是可以修改外部环境里的变量的

原文:https://www.cnblogs.com/duan-qs/p/11921342.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!