• 函数(二)


    七.局部变量、全局变量

    name = "李四"         #定义name = "李四"
    
    def name_change():
    
        name = "张三"     #在函数中把name修改为张三
    
        print(name)
    
    name_change()         #调用函数,打印函数中的name
    
    print(name)           #打印函数外的name

    运行结果:

    张三
    李四

    发现虽然函数内把name修改了,但是对函数外的name毫无影响,函数内的name就叫局部变量

    name = "李四"         #定义name = "李四"
    def name_change():
        print(name)       #不修改name,直接打印
    name_change()         #调用函数,打印函数中的name
    print(name)           #打印函数外的name

    运行结果:

    李四
    李四

    定义在函数外部的一级代码的变量就是全局变量,全局能用,所以函数引用有一个优先级,如果函数内有局部变量的话,先用局部变量,若是函数内没有变量则引用全局变量

    假如,一定要在函数中修改全局变量,可以使用global

    name = "李四"         #定义name = "李四"
    
    def name_change():

      global name    #使用global方法 name
    = "张三" #在函数中把name修改为张三 print(name) name_change() #调用函数,打印函数中的name print(name) #打印函数外的name

    结果:

    张三
    张三

    使用global后,在函数中修改name后发现全局变量也发生了变化

    注意:若是先赋值再用global的话就会报错

    name = "张三"
    
    global name

    遇到列表时,情况又有变化

    L1 = [123,456,789]
    
    def num_change():
    
        L1[0] = "abc"
    
        print(L1)
    
    num_change()
    
    print(L1)

    结果:

    ['abc', 456, 789]
    ['abc', 456, 789]
    在函数中修改了列表中的值,则全局的列表也会发生变化
  • 相关阅读:
    根据外键名找到主表和关联表的相关列
    MS SQL 查询未提交的事务和执行的SQL语句
    Ionic 的常见问题
    从零开始在linux上搭建web服务器
    bat 批量提取指定目录下的文件
    tornado 协程 和 多线程
    HTML认识二
    HTML标签认识一
    HTML认识一
    使用Mysql执行SQL语句基础操作
  • 原文地址:https://www.cnblogs.com/sunj-96/p/10638757.html
Copyright © 2020-2023  润新知