首页 > 代码库 > 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 模块