一个python文件就是一个模块,可以类似为C/C++中的头文件和源文件
创建了一个EM.py
的文件,在里面写了函数和类,就是新建了一个EM
模块。
# 1. 导入整个模块 import math [as 别名] math.pow(2, 3) math.pi # 2. 导入部份 # from 模块名 import 函数/变量/类 from math import pow pow(2, 3)#此时不用再使用math.pow(),但无法使用pi
#安装 pip install 模块 #使用 import 模块
写完自己的模块后,需要在文件夹目录下右键->makeDirectoty as Sources Root
问题:
自己写的一个模块,可以有定义的函数和类,也会有运行函数
,但当被其他文件导入后,这个运行函数也会被执行,这个如下:
# clac.py def add(a, b): return a+b print(add(10, 20)) # 另一个ma.py import clac add(20, 30) # 输出: 50 30
ma.py
想使用add
函数,但clac.py
的
print(add(10, 20))
也被执行了。
解决问题
# clac.py def add(a, b): return a+b #两个下划线 if __name__ = '__main__' print(add(10, 20))
此时只有clac.py
当作主文件执行时,这一句print
才会被执行
包的作用是为了解决模块名称冲突的问题。
在形式上包
就是一个文件夹,而模块
是一个.py
文件。
但包不同于一般的文件夹(directory
)
import 包名 import 包名.模块名 [as myname] from 包名 import 模块名 from 包名.模块名 import 函数/变量