• global 全局变量的用法


    说明:i 和foo()都为全局变量,i 是在模块文件顶层注册的,所以为全局变量,他能够在函数内部进行引用而不需要再特意声明是全局变量,且foo()函数也是全局变量

    1.当没有局部变量时,print(i,'in foo()'),根据LEGB规则,打印的是全局变量;print(i,'global')也是全局变量

    如下

    i = 1
    def foo():
        print(i,'in foo()')   #局部变量
    print(i,'global')   #全局变量
    foo()
    print(i,'未定义')
    
    #输出
    1 global
    1 in foo()
    1

    2.当设置局部变量时,print(i,'in foo()') 打印局部变量,print(i,'global'),打印全局变量,print(i,'未定义'),打印全局变量 1

    i = 1
    def foo():
        i=5
        print(i,'in foo()')   #局部变量
    print(i,'global')   #全局变量
    foo()
    print(i,'未定义')
    
    #输出
    1 global
    5 in foo()
    1 未定义

    3.当把局部变量设置成global 全局变量时,print(i,'in foo()'),打印的还是局部变量,print(i,'global'),没有变量,始终是def 之前定义的变量i=1;

     print(i,'未定义'),根据LEGB 规则,寻找全局变量,因全局变量设置为i =5,打印出来也是5

    i = 1
    def foo():
        global i
        i=5
        print(i,'in foo()')   #局部变量
    print(i,'global')   #全局变量
    foo()
    print(i,'未定义')
    
    
    #输出
    1 global
    5 in foo()
    5 未定义
  • 相关阅读:
    CentOS下MySQL的彻底卸载
    cent 7.0 安装mysql
    centos 安装mysql Package: akonadi-mysql-1.9.2-4.el7.x86_64 (@anaconda)
    使用注解配置SQL映射器
    bean
    转:最简日志打印规范
    快速搭建sonar代码质量管理平台
    (转)Where与Having的总结
    一个问题,日后会写为什么贴出来
    hive Tutorial
  • 原文地址:https://www.cnblogs.com/sxwen/p/8029244.html
Copyright © 2020-2023  润新知