模块:
1. 定义:本质就是.py结尾的python文件
从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能)。
文件名:test.py对应的模块名就是test
2. 导入方法:
import module_name
import modele_name1, module_name2
from module_name import * 不建议这么用
from module_name import m1 as login
from module_name import m1 m2 m3 导入多个
3. 导入模块的本质:
将模块解释了一次后封装赋值给一个变量。
4. 包:本质就是一个文件夹(一个目录),但必须带一个__init__.py文件
用来从逻辑上组织模块的
导入包就是解释其下的__init__.py
5. import 模块时,顺序是: 当前路径 => sys.path
import sys, os
print(sys.path)
print(__file__)
print(os.path.abspath(__file__))
print(os.path.dirname(os.path.abspath(__file__)))
输出:
['D:\Python3\python_project\Project_1\Day-06-21', 'D:\Python3\python_project\Project_1', 'D:\Python3\python_project\Project_1\venv\Scripts\python36.zip', 'C:\Users\brace.li\AppData\Local\Programs\Python\Python36-32\DLLs', 'C:\Users\brace.li\AppData\Local\Programs\Python\Python36-32\lib', 'C:\Users\brace.li\AppData\Local\Programs\Python\Python36-32', 'D:\Python3\python_project\Project_1\venv', 'D:\Python3\python_project\Project_1\venv\lib\site-packages', 'D:\Python3\python_project\Project_1\venv\lib\site-packages\setuptools-39.0.1-py3.6.egg', 'D:\Python3\python_project\Project_1\venv\lib\site-packages\pip-9.0.3-py3.6.egg', 'C:\Program Files\JetBrains\PyCharm 2018.1.3\helpers\pycharm_matplotlib_backend']
D:/Python3/python_project/Project_1/Day-06-21/main.py
D:Python3python_projectProject_1Day-06-21main.py
D:Python3python_projectProject_1Day-06-21
1. 定义:本质就是.py结尾的python文件
从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能)。
文件名:test.py对应的模块名就是test
2. 导入方法:
import module_name
import modele_name1, module_name2
from module_name import * 不建议这么用
from module_name import m1 as login
from module_name import m1 m2 m3 导入多个
3. 导入模块的本质:
将模块解释了一次后封装赋值给一个变量。
4. 包:本质就是一个文件夹(一个目录),但必须带一个__init__.py文件
用来从逻辑上组织模块的
导入包就是解释其下的__init__.py
5. import 模块时,顺序是: 当前路径 => sys.path
import sys, os
print(sys.path)
print(__file__)
print(os.path.abspath(__file__))
print(os.path.dirname(os.path.abspath(__file__)))
输出:
['D:\Python3\python_project\Project_1\Day-06-21', 'D:\Python3\python_project\Project_1', 'D:\Python3\python_project\Project_1\venv\Scripts\python36.zip', 'C:\Users\brace.li\AppData\Local\Programs\Python\Python36-32\DLLs', 'C:\Users\brace.li\AppData\Local\Programs\Python\Python36-32\lib', 'C:\Users\brace.li\AppData\Local\Programs\Python\Python36-32', 'D:\Python3\python_project\Project_1\venv', 'D:\Python3\python_project\Project_1\venv\lib\site-packages', 'D:\Python3\python_project\Project_1\venv\lib\site-packages\setuptools-39.0.1-py3.6.egg', 'D:\Python3\python_project\Project_1\venv\lib\site-packages\pip-9.0.3-py3.6.egg', 'C:\Program Files\JetBrains\PyCharm 2018.1.3\helpers\pycharm_matplotlib_backend']
D:/Python3/python_project/Project_1/Day-06-21/main.py
D:Python3python_projectProject_1Day-06-21main.py
D:Python3python_projectProject_1Day-06-21
6. 导入包就只是允许了__init__.py(from . import sayhi) .表示是init的相对路径
所以要调用包里面的模块,是找不到的。
要想直接导入包,就能只能调用其下的模块,就必须在__init__.py中import所有模块
7. 模块的分类:
1. 标准库:python自带的;
2. 开源模块:实现谋一个功能,放在getHUB里面;
3. 自定义模块