• Python-13-函数_02_局部变量、全局变量、前向引用


     1 # 1、局部变量和全局变量
     2 
     3 在子程序中定义的变量称为局部变量,在程序的一开始(代码前面没有缩进)定义的变量称为全局变量。
     4 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
     5 当全局变量与局部变量同名时:
     6 在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
     7 
     8 """
     9 ###### 全局变量变量名大写
    10 ###### 局部变量变量名小写
    11 
    12 # 1、指定 全局变量——global
    13 
    14 name = "121321213"             # 全局变量
    15 def change_name1():
    16     global name                # global + 全局变量(name),声明,此位置的变量 就是最外面那个全局变量...
    17     print(name)
    18     name = 'newmet'                # 经过在当前函数中声明全局变量,这一步...将全局变量name 重写,下面所运行的name变量值 均为重写后的值。
    19     print('我的名字:', name)
    20 
    21 def change_name2():
    22     # name = 'newmet.top'
    23     print('我的名字:', name)          # 由于先调用的change_name1函数,而在这个函数中,利用global(关键字)将全局变量name
    24                                      # 重写,后续再执行或者调用别的函数,与全局变量name有关的,都会使用重写后的值。
    25 
    26 change_name1()
    27 change_name2()
    28 print(name)
    29 
    30 # 2、指定 上一级变量——nonlocal
    31 
    32 ###### 函数可以嵌套函数
    33 
    34 # 3、前向引用(函数即变量)
    """
        作用域:起作用的范围.
        局部变量:在方法体内部定义的变量
        全局变量:定义在.py文件中的变量
    """
    
    # 全局变量
    g1 = 100
    
    def fun1():
        # 可以读取全局变量
        # print(g1)
    
        # 此时没有改变全局变量,而是创建了与全局变量名称相同的局部变量
        # g1 = 200
    
        # 声明全局变量
        global g1
        g1 = 200
        print(g1)
    
        # 再声明全局变量
        global g2
        g2 = 300
    
        # 局部变量
        a = 1
        # 不能将局部变量 改为全局变量
        # global a
    
    
    
    
    def fun2():
        a = 2
        # global g1,g2   可以省略
        print(g1,g2)
    
    fun1()
    fun2()
  • 相关阅读:
    编码原则 之 Once and Only Once
    编码原则 之 Stable Dependencies
    分布式锁
    DTS(待了解)
    BPMN(待了解)
    criteo marketing api 相关
    enum & json 之间的转换
    bootstrap:modal & iframe
    记Ubuntu Mongodb 和 Mysql的安装与使用
    齐次和非齐次线性方程组的解法
  • 原文地址:https://www.cnblogs.com/newmet/p/9946512.html
Copyright © 2020-2023  润新知