美文网首页
08:变量(模块与函数之间的变量)

08:变量(模块与函数之间的变量)

作者: 寻水的_鱼 | 来源:发表于2018-07-24 11:08 被阅读16次

    python学习day_7:

    1、变量之全局变量

    • 定义:声明在函数外部的变量:全局变量
      从声明的地方开始-当前文件中所有的位置都能使用这个变量
    #从声明的地方开始-当前文件中所有的位置都能使用这个变量
    jobs = "爬虫工程师"
    
    def eat():
        print("全局变量:",jobs)      
    
    def find():
        print("全局变量:", jobs)
    #执行函数
    eat()
    find()
    
    #两个函数中引用了函数外部的数据:全局变量
    

    2、变量之局部变量

    • 定义:声明在函数内部的变量:局部变量
      只能在当前函数中调用,函数执行完毕时,局部变量生命周期结束
    
    def eat():
        food = "老碗面"
        print("局部变量:",food)
    
    #执行函数
    eat()
    #打印数据
    print("局部变量:",food)
    #unresolved reference 'food' 不能解析(解释)引用的这个变量:food
    #NameError: name 'food' is not defined 变量food没有定义!
    
    

    3、在函数类定义全局变量之关键字global

    • global的含义:
      (1)在函数中使用指定的全局变量
      (2)在函数外部没有这个变量,在函数内声明一个全局变量
    name = "jerry"
    
    print("函数外部查询变量:",name)
    
    def test():
        global name #声明在函数中要使用全局变量 name
        global msg #在函数外部没有变量msg,表示在函数中定义一个全局变量 msg
        print("函数内部查询变量:",name)
        name = "tom"       #改变全局变量的值
        msg = "hello 函数中的全局变量"
    
        # UnboundLocalError: local variable 'name' referenced before assignment
        # 一个没有绑定的局部变量错误:一个局部变量name必须先声明再修改!
        # 函数中如果定义了和全局变量名称一直的变量~默认函数中的变量是重名的局部变量
    
    test()
    print("这里再次打印全局变量:",name)
    print(msg)
    

    4、在函数内不使用global关键字时,局部变量与全局变量重名的问题

    name = "yuzihua"
    
    def user_login():
        #UnboundLocalError: local variable 'name' referenced before assignment
        #本地变量使用在定义之前
        print("打印全局变量:",name)# 这里是出错的位置:
        #原因:在函数中使用name,但没有使用global关键字引入全局变量
        #所以name在这里调用局部变量
        #所以局部变量必须先定义在使用
    
        name = "jerry"
    
        print(name)
    
    print("打印全局变量:",name)
    
    user_login()
    
    print("打印全局变量:",name)
    
    

    在外部调用局部变量时,会报错!
    ################################################################

    变量:全局变量|局部变量

    全局变量:声明在函数外部,从声明的地方开始-当前文件中所有的位置都能使用这个变量

    局部变量:声明在函数内部,只有当前函数中可以访问的变量;出了函数谁都解析不了

    相关文章

      网友评论

          本文标题:08:变量(模块与函数之间的变量)

          本文链接:https://www.haomeiwen.com/subject/rrthmftx.html