• 局部变量,全局变量,作用域


    全局变量,局部变量 ,作用域

    • 全局变量
      定义在函数外部一级代码的变量,叫全局变量
    • 局部变量
      在函数里面定义的变量,叫局部变量,只能在函数内部使用,如果全局变量跟局部变量名一样,优先使用函数局部的变量
    • 作用域
      分为:
      L (Local) 局部作用域
      E (Enclosing) 闭包函数外的函数中
      G (Global) 全局作用域
      B (Built-in) 内建作用域
      以 L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。

    在函数内部,可以引用全局变量

    name = 'zk'    # 全局变量 全局作用域
    def change():
    
        name = '小黄'     # 在函数里面是局部变量   局部作用域
        print(id(name))
        print(name)
    change()
    print(name,id(name))
    

    在函数里修改全局变量

    只需要在函数里声明变量前加 global 变量名

    name = 'zk'
    def change():
        global name
        name = '小黄'
        print(id(name))
        print(name)
    change()
    print(name,id(name))
    

    在函数里修改列表数据

    names = ['zk','cz','hc','th']
    
    def set_names():
    
    
       # names = ['zk','hc','th']
        del names[1]    # 全局的元素可以修改 
        names[1] = 'xiaohan'   # 可以修改的有列表,字典等
        print(names) 
    set_names()
    print(names)       
    # 输出
    ['zk', 'xiaohan', 'th']
    ['zk', 'xiaohan', 'th']
    

    如果要全部修改,就要global

    names = ['zk','cz','hc','th']
    
    def set_names():
    
        global names
        names = [1,2,3,4]
        del names[1]
        names[1] = 'xiaohan'
        print(names)
    set_names()
    print(names)
    

    输出

    [1, 'xiaohan', 4]
    [1, 'xiaohan', 4]
    
  • 相关阅读:
    如何快速开发一个自己的项目脚手架?
    Vue模板语法中数据绑定
    vue组件间通信八种方式
    浏览器渲染页面流程
    双飞翼布局
    单行截断和多行截断问题
    flex 布局实现固定头部和底部,中间滚动布局
    defer 和 async 区别
    数学之美(统计语言模型)
    react 源码之setState
  • 原文地址:https://www.cnblogs.com/zhoukaivfx/p/10777432.html
Copyright © 2020-2023  润新知