美文网首页
命名空间

命名空间

作者: 三米板 | 来源:发表于2020-03-15 17:20 被阅读0次

Python基础教程

写在前边

命名空间,在我们上面类引用的一课程中已经接触到了,这一节我们着重地看一下命名空间在python中的使用。
我们联想一下其它的语言
java中,我们使用包名来管理命名空间。
php在5.3之后,也引入了命名空间的概念,以反斜杠+空间名的形式来实现
在oc中,使用一个统一的前缀来实现命名空间
你看,每一种语言都有它不太相似的命名空间形式,但是目的都是一样的,都给自己添了个姓氏,就是为了减少在同一个教室里被点错名的事故发生。
我们看一下pyton中的命名空间:

命名空间的种类

一般有三种命名空间:
内置名称(built-in names): Python 语言内置的名称,比如函数名 abs、char 和异常名称 BaseException、Exception 等等。
全局名称(global names):模块中定义的名称,记录了模块的变量,包括函数、类、其它导入的模块、模块级的变量和常量。
局部名称(local names):函数中定义的名称,记录了函数的变量,包括函数的参数和局部定义的变量。(类中定义的也是)

global 和 nonlocal关键字

以下实例修改全局变量 num:

num = 1
def fun1():
    global num  # 需要使用 global 关键字声明
    print(num) 
    num = 123
    print(num)
fun1()
print(num)
#输出结果
1
123
123

如果要修改嵌套作用域(enclosing 作用域,外层非全局作用域)中的变量则需要 nonlocal 关键字了,如下实例:

def outer():
    num = 10
    def inner():
        nonlocal num   # nonlocal关键字声明
        num = 100
        print(num)
    inner()
    print(num)
outer()
#输出结果
100
100

相关文章

  • Hbase 查询语句

    进入HBase数据库 HBase帮助命令: 命名空间 列出所有命名空间 新建命名空间 删除命名空间 该命名空间必须...

  • NDK开发:C++基础

    一、命名空间 standard:标准命名空间 命名空间类似于java中的包。 自定义命名空间 使用命名空间 ::为...

  • Chapter 18 Large-scale project t

    命名空间 inline命名空间 inline声明的命名空间, 可以无视本层命名空间, 而可以被直接使用. 用处: ...

  • C#随笔1

    1命名空间 语法 namespace 命名空间名称{若干个类型} ORnamespace 命名空间名称.子命名...

  • 07_Python函数进阶_全栈开发学习笔记

    # 1. 命名空间 ## 1.1 命名空间的种类 命名空间共有有三种 1) 内置命名空间 —— python解释器...

  • C++入门05 --命名空间,继承,访问权限,初始化列表

    命名空间 命名空间主要是用来解决命名冲突的; namespace xxxx { }:命名空间的定义; 利用::域运...

  • 命名空间 namespace

    /*命名空间:命名空间是一种封装事物的方法命名空间怎么声明?关键字: namespace 导入命名空间: use起...

  • chapter18_命名空间

    命令空间 每个命名空间都是一个作用域位于该命名空间之外的代码必须明确指出所用的名字属于哪个命名空间 命名空间可以是...

  • kubernetes-RBAC实操

    环境准备准备test的命名空间test命名空间下创建serviceaccounttest命名空间下创建rolete...

  • laravel控制器

    namespace命名空间 命名空间:命名空间是一种封装事物的方法。 命名空间用来解决在编写类库或应用程序时创建可...

网友评论

      本文标题:命名空间

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