• python 3 基础之局部变量与全局变量


    1、局部变量

      局部变量,就是在函数内部定义的变量;其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的;

      因为其作用范围只是在自己的函数内部,所以不同的函数可以定义相同名字的局部变量

      当函数调用时,局部变量被创建,当函数调用完成后这个变量就不能够使用了

    # 定义一个函数
    def my_func(a,b):
        num = a + b
        print(num)
    
    my_func(23,23)
    # 定义一个局部变量相同的第二个函数
    def my_func2(a,b):
        num = a * b
        print(num)
    
    my_func2(33,2)

      两个函数各自内部的变量num都可以在函数各自内部正常使用 :在函数内部定义的局部变量名可以和其他函数中的局部变量名相同 是不冲突的

    2、全局变量

      全局变量和局部变量的区别在于作用域,全局变量在整个py文件中声明,全局范围内可以使用;局部变量是在某个函数内部声明的,只能在函数内部使用,如果超出使用范围(函数外部),则会报错

      当函数内出现局部变量和全局变量相同名字时,函数内部中的 变量名 = 数据 此时理解为定义了一个局部变量,而不是修改全局变量的值

    # 全局变量
    num = 1
    # 函数
    def num_func():
        # 局部变量
        num = 10
        print('函数内部',num)
    
    num_func()
    
    print('函数外面',num)

    ======================================
    运行结果:

      函数内部 10
      函数外面 1

        函数内部如果使用一个变量 他先从函数内部找 如果有直接使用;函数内部没有找到 会到函数外面找(全局变量) 

        若一个全局变量在函数中使用,修改全局变量,需要声明,如下:

    # 定义一个变量
    num = 1
    def my_func1():
        # 标识这函数内部不是定义一个局部变量 其实是对全局变量的进行修改
        global num
        # 对全局变量的值进行修改
        num = 20
        print("my_func1", num)
    my_func1()
    # 打印也是20
    print("外面", num)
    ==============================================================
    运行结果:

        my_func1 20
        外面 20

      如果在函数中出现  global +全局变量的名字 ,那么这个函数中即使出现和全局变量名相同的变量名 = 数据 也理解为对全局变量进行修改,而不是定义局部变量;执行过后,全局变量值也会改变。

      

      如果全局变量是列表类型,可以通过list的列表方法去对列表进行修改,并且可以不用global来声明,如下:

    list_1 = [1,2,56,"list"]
    def changeList():
        list_1.append("over")
        print(list_1)
    
    changeList()
    print(list_1)
  • 相关阅读:
    自定义中间件
    haha
    博客园使用教程(皮毛)
    购物车
    计算器
    python格式化while循环
    JS弹出框、对话框、提示框,JS关闭窗口、关闭页面和JS控制页面跳转
    CentOS平台下的Docker安装与启动
    面向接口编程详解(一)——思想基础
    三目运算符详解
  • 原文地址:https://www.cnblogs.com/will-wu/p/13245997.html
Copyright © 2020-2023  润新知