首页 > 代码库 > python 模块
python 模块
模块(module)
函数和类只能在一个程序中重用,如果要在多个程序中重用就可以用模块,模块文件扩展名一般都是.py。
一般有三个名字空间:局部、全局、内建,按照这个顺序从这个三个名字空间寻找模块的属性。
内建的变量__name__:
__name__== ‘__main__‘当模块独立运行时
__name__==模块名 当模块被别的程序导入时
------------------------------------
模块导入:
import module1[, module2[, …moduleN]] #使用名称空间避免名称冲突
import module as aliasname #给导入的模块取别名
frommodule import name1[, name2[, …nameN]] #导入模块中的指定属性
from module import name as aliasname #给导入的模块取别名
frommodule import * #导入模块中的所有属性,不推荐使用。
导入模块是在编译或安装的路径中搜索的,可通过sys.path查看。
可以通过修改环境变量PYTHONPATH修改搜索路径,
也可以使用sys.path.append(“path”)来添加你的搜索路径。
推荐的在模块开头部分导入模块,按下列顺序:
python标准库模块
python第三方模块
自定义模块
模块导入会执行最高级别的代码(也就是没有缩进的变量函数类),如果不想这些代码被执行可以将这些代码放到下面结构中:
if__name__ == “__main__”:
------------------------------------
__builtins__模块中和模块相关的内建函数:
导入函数:import语句其实就是调用该函数:
__import__(name,globals=None, locals=None, fromlist=(), level=0)
globals():返回调用者全局名称空间的字典
locals():返回调用者局部名称空间的字典
在全局范围两个函数值一样的。
dir([obj])函数:
dir():查看当前导入了哪些模块。
dir(module_name):查看当前模块有哪些内容,也就是__dict__的内容。
------------------------------------
包:
模块是扁平的层级结构,包是一个有层次的文件目录结构。
绝对导入:
import l1.l2...lN
from l1 import l2
from l1.l2...lN import lN+1
相对导入:
from .lN import lN+1
------------------------------------
__builtins__模块:包含python中的内建模块,不需要用import导入:
下面内建模块也就是工厂函数:
int模块
float模块
str模块
tuple模块
list模块
dict模块
set模块
frozenset模块
property
bytes
bytearray
memoryview
object
slice
python 模块