模块命名空间

# -*- coding: utf-8 -*-
#python 27
#xiaodeng
#模块命名空间

#模块最好理解为变量名的封装,也就是定义想让系统其余部分看见变量名的场所。
#python会建立模块对象,以包含模块文件内所赋值的所有变量名
#模块就是命名空间,而存在于模块之内的变量名就是模块对象的属性

#在模块文件的顶层每一个赋值了的变量名都会变成该模块的属性

#下面正式的来说明模块加载和作用域的概念以了解其原因?

#模块语句会在首次导入时执行
    #系统中,模块在第一次被导入时,无论在什么地方python都会创建空的模块对象,并逐一执行该模块文件内的语句

#顶层的赋值语句会创建模块属性  #593页
    #在导入时,文件顶层赋值变量的语句(如:=和def、class语句等等),会建立模块对象的属性,赋值的变量名会存储在模块的命名空间内

#模块的命名空间能通过属性__dict__或dir()来获取
    #由导入而建立的模块的命名空间是字典,可通过模块对象相关联的内置的__dict__属性来读取
#模块是一个独立的作用域(本地变量就是全局变量)
时间: 2024-08-27 14:01:56

模块命名空间的相关文章

python 模块==命名空间?

起因: 想利用模块传递某个变量,修改某个变量的值,且在其它模块中也可见 于是我做了这样一个实验: [email protected]:vearne/test_scope.git base.py value = 10 b.py import base def hello(): print 'scope base', base.value, id(base.value) main.py from base import value from b import hello print 'scope b

oop思维意识,类 模块命名空间,类扩展之继承 、组合、mixin三种模式

python的书都是讲怎么创建类怎么实例化对象,一般会用使用了,但还不具备这种编程意识.这是从python学习手册第四版节选出来的,书中说oop不仅是一种技术,更是一种经验.学习大神的看法,为什么需要oop意识.

python 深入模块和包

模块可以包含可执行语句以及函数的定义. 这些语句通常用于初始化模块. 它们只在 第一次 导入时执行.只在第一次导入的时候执行,第一次.妈蛋的第一次...后面再次导入就不执行了. [1](如果文件以脚本的方式执行,它们也会运行.) 每个模块都有自己的私有符号表, 模块内定义的所有函数用其作为全局符号表. 被导入的模块的名字放在导入模块的全局符号表中. import 语句的一个变体直接从被导入的模块中导入名字到导入模块的符号表中. 例如: >>> >>> from fibo

Python2.5-原理之模块

此部分来自于<Python学习手册>第五部分 一.模块(21章) 模块是最高级别的程序组织单元,它将程序代码和数据封装起来以便重用..模块往往对应于python程序文件.每个文件就是一个模块,并且模块导入其他模块之后就可以使用导入模块定义的变量名.模块可以由两个语句和一个重要的内置函数进行处理:a.import,使客户端(导入者)以一个整体获取一个模块:b.from,允许客户端从一个模块文件中获取特定的变量名:c.imp.reload,在不中止python程序的情况下,提供了一种重新载入模块文

Python学习笔记总结(二)函数和模块

一.函数 函数的作用:可以计算出一个返回值,最大化代码重用,最小化代码冗余,流程的分解. 1.函数相关的语句和表达式 语句        例子 Calls        myfunc(‘diege','eggs',meat=‘lit’) #使用函数 def,return,yield      def adder(a,b=1,*c):                        return a+b+c[0] global        changer():                 gl

Python之命名空间、闭包、装饰器

一.命名空间 1. 命名空间 命名空间是一个字典,key是变量名(包括函数.模块.变量等),value是变量的值. 2. 命名空间的种类和查找顺序 - 局部命名空间:当前函数 - 全局命名空间:当前模块 - 内建命名空间:所有Python环境,所有模块 查找顺序 1.先在当前 (嵌套的或 lambda) 函数的命名空间中搜索 2.然后是在父函数的命名空间中搜索 3.接着是模块命名空间中搜索 4.最后在内置命名空间中搜索 要到内置命名空间都没找到的话,就会弹出NameError 这里看一个例子 i

python之基础篇(八)——模块与包

防伪码:忘情公子著 python中的模块 将代码量较大的程序分割成多个有组织的.彼此独立但又能互相交互的代码片段,这些自我包含的有组织的代码段就是模块. 模块在物理形式上表现为以.py结尾的代码文件: 一个文件被看作一个独立的模块,一个模块也可以被看作是一个文件 模块的文件名就是模块的名字加上扩展名.py 每个模块都有自己的名称空间 python允许"导入"其它模块以实现代码重用,从而也实现了将独立的代码文件组织成更大的程序系统: 在python中,模块也是对象 在一个模块的顶层定义的

初识Python(10)__Python模块

模块 什么是模块 自我包含并且有组织的代码片断就是模块( module ) 模块是Pyhon最高级别的程序组织单元,它将程序代码和数据封装起来以便重用.实际的角度,模块往往对应Python程序文件.每个文件都是一个模块,并且模块导入其他模块之后就可以使用导入模块定义的变量名.模块可以由两个语句和一个重要的内置函数进行处理.import: 使客户端(导入者)以一个整体获取一个模块.from:容许客户端从一个模块文件中获取特定的变量名.reload:在不中止Python程序的情况下,提供了一个重新载

[Python3]模块和包

模块 在Python中模块可以理解为颗粒度更大的组织方式,其中可以包含类.函数.变量等等资源. 而为了更好的把一些基础服务提供给大家应用,Python提供了大量的标准模块,以及大量开源的第三方模块. 我们先看一下模块导入的基本格式: # 方式一 # 直接导入整个模块 import 模块名 # 例如导入sys模块 import sys # 方式二 # 从模块中导入指定的类.方法等资源 from 模块名 import 模块/类/方法/变量 # 例如从sys中导入path from sys impor