修订日期 | 内容 |
---|---|
2021-2-15 | 初稿 |
模块
简述
: 什么是模块呢?简单来说一个.py结尾的文件就是一个模块,模块里面的内容可以包括0到多个常量,函数、类、属性等。在java中一个文件一般只有一个类,这一点与Python区别较大,所以值得我们单独去研究。
包
目录与包的区别
在Python中有包与目录的区别,从表面来说包下面一定有一个
__init__.py
文件,而目录没有,在PyCharm中的显示也有区别
目录与包下均可以创建.py文件与子目录子包,并且之间都能相互import。之前看过其他博客说是python3.0之前目录对import
相关模块有限制,而python3.0之后没有区别了(这里本人没有仔细研究),就目前看来唯一的区别就在于__init__.py
文件有的功能就是目录与包package的区别。之后再说明__init__.py
文件的作用。
包(模块)的导入
在java中我们往往习惯说导包,在python中其实是导入的模块。
导入内置模块
1.例如导入系统包
# 导入内置模块math
import math
print(math.floor(3.9)) # 3
2.导入指定模块并使用别名
# 导入内置模块math
import math as m
print(m.ceil(3.1)) # 4
3.导入模块中的特定方法(函数)/变量/类
# 指定了floor函数,则可以直接使用floor方法,且不能使用math其他的方法
from math import floor
print(floor(3.9)) # 3
4.导入模块中的特定方法(函数)/变量,并指定别名
from math import floor as f
print(f(3.9)) # 3
导入自定义模块
分别创建如下python文件
/testdir/package/package_demo.py
# /testdir/package/package_demo.py 文件内只有一个方法package_m()
def package_m():
print('测试包中的方法')
/testdir/testdir_01.py
目的:在testdir_01.py
模块中导入package_demo.py
模块
导入方式一
import testdir.package.package_demo as testpack
testpack.package_m()
导入方式二
在Pycharm中 鼠标选中package包右键-> Mark Directory as -> Sources Root则可以直接导入
import package_demo
package_demo.package_m()
总结
模块类型 | 导入方式 | 例 |
---|---|---|
内置模块 | import 模块 | import math |
内置模块 | import 模块 as 别名 | import math as m |
内置模块 | from 模块 import 函数/变量/类 | from math import floor |
内置模块 | from 模块 import 函数/变量/类 as 别名 | from math import floor as f |
自定义模块 | import [完整包路径].模块 as 别名 | import testdir.package.package_demo as testpack |
自定义模块 | import [完整包路径].模块 | import testdir.package.package_demo |
自定义模块 | from [完整包路径].模块 import 函数/变量/类 | from testdir.package.package_demo import package_m |
自定义模块 | 自定义模块做为Sources Root |
import package_demo |