• python 变量作用域


    Python中变量的作用域可分为4种:

    本地作用域:没有内部函数时,函数体为本地作用域。

    函数嵌套作用域:包含内部函数时,函数体为函数嵌套作用域

    文件作用域:程序文件(也称模块文件)的内部为文件作用域。

    内置作用域:Python运行时的环境为内置作用域,它包含了Python的各种预定义变量和函数

    内置和文件作用域可称为全局作用域

     作用域外部的变量和函数可以在作用域内使用;

    相反,作用域内的变量和函数不能在作用域外使用

    全局变量:内置作用域和文件作用域钟定义的变量和函数

    局部变量:在函数嵌套作用域和本地作用域内定义的变量和函数

    本地优先:当作用域外和作用域内的变量名称相同时,以本地优先,默认屏蔽外面的变量

    a=1
    def show():
        print('a=',a)
        a=2
    show()

     这样会出错是因为在函数中,引用了变量a,但是在函数中内部a的赋值语句,所以函数内部是内部a的作用域

    因此会出错

    1,global 声明变量为全局变量

    def show():
        global a
        a=2
        print('a=',a,sep='')
    show()
    print(a)

    def show():
        global a
        print(a)
        a=5
    a=1
    show()
    print(a)

    2,nonlocal原则

    作用域隔离原则同样适用于嵌套函数。在嵌套函数内使用与外层函数同名的变量时,

    若该变量在嵌套函数内部没有被赋值,则该变量就是外层函数的本地变量

    def show():
        def hh():
            nonlocal a  #表示a时外层函数的本地变量
            print(a)
        a=2 #a必须定义在调用hh之前
        hh()
    show()

     

    nonlocal不能定义在最外层函数中

  • 相关阅读:
    高级软件工程第一次作业
    《高级软件工程》团队第二次作业
    《高级软件工程》结对第二次作业
    《高级软件工程》团队第一次作业
    《高级软件工程》结对第一次作业
    《高级软件工程》第二次作业
    《高级软件工程》第一次作业
    冲刺NO.1
    冲刺No.4
    冲刺No.3
  • 原文地址:https://www.cnblogs.com/fengzhiyuan/p/13942861.html
Copyright © 2020-2023  润新知