zoukankan      html  css  js  c++  java
  • python 里内嵌函数是可以修改外部环境里的变量的

    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

  • 相关阅读:
    前端小tite(随笔)
    算法两数之和 python版
    常用标签
    pip install 遇到的问题
    不常用的模块
    约束和约束关系
    Django初识
    前端—Bootstrap
    前端—jQuery
    前端—BOM和DOM
  • 原文地址:https://www.cnblogs.com/duan-qs/p/11921342.html
Copyright © 2011-2022 走看看