zoukankan      html  css  js  c++  java
  • 名称空间和作用域

    一.名称空间

      在python解释器开始执行之后,就会在内存里开辟一个空间.遇到变量时,就把变量名和值之间的关系记录下来.但是在定义函数的时候,只要不调用函数,解释器是不会把函数内的变量加载到名称空间的.执行函数时,随着函数执行完毕,函数里的变量也会被清空.

    def func():
        a = 10
        b = 20
        print(a)
    #如果不调用func  函数里面的a 和 b 都不会创建
    #如果调用   函数里面的   a b  才会被创建
    func()
    print(a)    # a不存在

    1.名称空间分类

        1.全局名称空间  :  在py文件中,函数外声明的变量都属于全局名称空间

      2.局部名称空间  :  在函数中声明的变量属于局部名称空间

      3.内置名称空间  :  在python解释器为使用人提供的名字   eg : list   tuple    等等

    2.加载顺序

      内置名称空间 -> 全局名称空间 -> 局部名称空间(函数被执行的时候)

    3.取值顺序

      局部名称空间 -> 全局名称空间 -> 内置名称空间

    二.作用域

      作用域就是作用范围.可以分为全局作用域和局部作用域

    1.全局作用域

      包含内置名称空间和全局名称空间. 在文件整个位置都可以使用(遵循从上到下逐行执行)

      可以使用globals() 查看全局作用域的内容

    2.局部作用域

      只在局部名称空间,也就是在函数内部.

      可以使用locals()查看局部作用域内容

  • 相关阅读:
    Makefile的常用技术总结
    NPOI 插入行[转]
    LINQ语句中的.AsEnumerable() 和 .AsQueryable()的区别 [转]
    Using Google Public DNS[Google公共DNS服务器]
    软件开发知识[TDD]
    MySQL函数之STRCMP()
    MySQL知识[INSERT语法]
    软件开发知识[ORM]
    软件开发知识[ADO.NET Entity Framework]
    mysql workbench 在模板与数据库间同步
  • 原文地址:https://www.cnblogs.com/q767498226/p/10088146.html
Copyright © 2011-2022 走看看