第二十一章 模块:宏伟蓝图

#1.
#A:简而言之,模块通过使用自包含的变量的包,也就是所谓的命名空间提供了将部件组织为系统的简单方法
#B:在一个模块文件顶层定义的所有的变量名都成了被导入的模块对象的属性,导入给予了对模块的全局作用域中的变量名读取的权限

#2.导入其实是运行时的运算,程序第一次导入指定文件时,会执行三个步骤
#A:找到模块文件
#B:编译成位码(需要时)
#C:执行模块的代码来创建其所定义的对象

#3.
#A:只在程序执行时,模块第一次导入时才会进行上述导入的三个步骤,导入相同模块会跳过这三个步骤,而只是提取内存中已加载的模块对象
#B:从技术上将,python将载入的模块存储到一个名为sys.moudles的表中,并在一次导入开始的时候检查该表,若表不存在则执行上述的三个步骤
import Test
import sys
bValue = "Test" in sys.modules      #bValue = True

#4.
#A:python查找import语句所引用的模块文件时,只能列出简单名称,路径和后缀是刻意省略的(加上则是非法的)
#B:import操作的最后步骤是执行模块的字节码。文件中所有语句会依次执行,此步骤中的任何赋值运算,都会产生所得到的模块文件的属性

#5.
#A:添加导入模块目录
#B:导入自定义模块的时候需要注意的是:不要在各个系统模块间出现相同名字的模块
#C:sys.path是模块搜索的路径,可以通过修改此变量来修改导入的搜索路径
import sys
sys.path.append('.\Test')          #此句代码功能是:可以导入当前目录下的子目录Test文件夹中的模块
str = sys.path
'''
str:
[0] = 'D:\笔记和代码\Python\python学习手册第四版\第二十一章 模块-宏伟蓝图\PythonApplication1\PythonApplication1'
[1] = 'C:\Windows\system32\python34.zip'
[2] = 'C:\Python34\DLLs'
[3] = 'C:\Python34\lib'
[4] = 'C:\Python34'
[5] = 'C:\Python34\lib\site-packages'
[6] = '.\Test'
'''

import Test1
'''
Test1.py内容:
value1 = 101
'''
value = Test1.value1                #value = 101

  

原文地址:https://www.cnblogs.com/szn409/p/6701159.html