2018.10.11python学习第十七天,,模块1.模块是什么?


模块

1.模块是什么? 模块:一组功能的集合

功能:在python中,一个功能就是一个函数;一个py文件就是一个模块

2.为什么要用模块?

借鉴思想:可以极大的提升开发效率

自定义模块:抽取我们自己程序中要用的功能,定义成模块,然后程序的各部分都去模块中调

用,可以较少代码冗余。

3.如何使用模块?

大前提:注意区分 执行文件 vs 被导入文件

模块类型的分类:

1.自定义模块(第三方模块也属于自定义模块)

2.内置模块 (c语言编写,连接到python解释器中,如time模块)

3.已经编译为DLL c or c++

4.包(包含一堆模块的文件夹)

如何自定义模块?

创建一个py文件,把功能写到该文件中

如何使用模块?

import:关键字,用于导入模块到当前文件中

如spam.py,模块名则是spam,在执行文件中写import spam就调用了该模块

当执行import时,会发生:

1.创建一个模块的namespace

2.执行被导入的文件spam.py,将模块中的name和地址的关系,都存储到模块的

namespace中。

3.在执行文件中,创建一个name,该name指向的地址就是第一步创建的namespace,执

行文件和被导入的模块namespace 是相互独立的。

import 的其他写法:

1.import xxx as xxx

# 给模块取别名,可以用别名直接调用

2.import xxx,xxx

# 一次导入多个模块

3.from xxx import xxx

# 从模块中导入名字到当前执行文件的namespace中

# 如果name冲突了,则按就近原则取值

4.from xxx import xxx,xxx

# 从模块中导入多个名字

5.from xxx import * #从模块中导入所有的name

6.from xxx import xx as xx

#取别名

#from和import出来导入的名称不同 其他性质一致

py文件的两种执行方式: 1.作为执行文件

2.作文模块被导入

如何判断py文件当前执行状态:

__name__这个名称可以获取当前执行状态
如果是__main__则是当前的执行文件,否则是作为模块被导入
if__name__ ==‘__main__‘:
print(‘作为执行文件‘)
else:
print(‘作为模块导入‘)
?

重复导入模块时,模块中的代码不会重复执行,仅在第一次导入时执行

模块的搜索顺序: 内存中已经加载的----->内置模块------->sys.path

查看内存中已经加载的模块

import sys
print(sys.modules)
for i in sys.modules
print(i)

查看sys.path (环境变量)

import sys
print(sys.path)
# 手动添加一个路径到环境变量中
sys.path.append(r‘文件的地址’)
print(sys.path)

2018.10.11python学习第十七天

评论关闭