zoukankan      html  css  js  c++  java
  • 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不能定义在最外层函数中

  • 相关阅读:
    Linux下autoconf和automake使用
    (转)跟我一起写MAKEFILE
    软件源(Software Sources)
    我的攒机(zuosi)过程
    《软件可靠性方法》笔记(一)---第二章 预备知识
    初识java泛型
    配置React Native的开发环境
    IOS原生方法实现二维码生成与扫描
    12个非常不错的免费HTML后台管理模板
    iOS 集成银联支付
  • 原文地址:https://www.cnblogs.com/fengzhiyuan/p/13942861.html
Copyright © 2011-2022 走看看