Python如何创建一个模块?以及模块导入

时间:2021-01-04 22:14:10

昨天面试空管局的时候遇到了这个问题。当时回答的不是很理想。现在整理一下。

python学习手册中写道:

定义模块,只要使用文本编辑器,把一些python代码输入到文本中,然后以.py为后缀名进行保存,任何此类文件都会被认为是python模块。

比如说,下面的代码输入到一个文件中,就可以看作是一个模块:

def printme(var):
print var
if __name__ == '__main__':
printme(1)

假设说输入到a.py中,那么import a就可以把这个模块导入。

然后可执行a.printme(3),屏幕即可打印出3。

----------------------------------------------------------------------------

一个模块顶层定义的变量,会自动变成模块的属性。例如:

data=[1,2,3]

def printme(var):
print var
if __name__ == '__main__':
printme(1)

data变量就是模块的一个属性。其实printme也是一个属性,只不过是一个函数罢了。

Python如何创建一个模块?以及模块导入

reload函数可以重新加载一个模块。如果在模块代码中更改了,那么需要重新加载。

上面a.data,就是访问模块中的属性。

--------------------------------

上面的例子是导入一个文件作为一个模块。

其实python的模块导入还有更丰富的内容。

除了模块名之外,python也可以导入指定目录路径。python代码的目录就称为包。因此,这类导入就称为包导入。事实上,包导入是把计算机上的目录变成python的一个命名空间。而属性就是目录中包含的子目录或者是模块文件。

看下面例子:

在我的桌面上有一个aa文件夹,里面有bb文件夹,bb里面有a.py这个文件。

那么在aa和bb文件夹中分别放置一个__init__.py,之后,在命令行中import aa.bb.a,就可以导入模块a了。