Library¶
模块(Module)《 包(Package)《 库(Library)《 框架(Framework)
- 模块,即一个
.py
或.so
等文件,一堆函数、类、变量的集合,其它语言中一般只能包含一个类,而Python可以包含多个 - 包:模块的集合,Py3.3之前的版本必须带
__ini__.py
, 现在可有可无,可以做一些包的初始化工作 - 库:指一定功能的代码集合,可由多个包和模块组成
- 框架:可以集成各种库
Python的模块不需要main
函数,参考:Python为什么没有main函数?
导入¶
import xx.xx
import importlib # 模块名如果是数字开头,可以动态导入
from xx.xx import xx [as rename] # 导入后可重命名,可用于简写模块名,或者避免命名冲突
from xx.xx import * # 导入全部,容易发生命名冲突,慎用
"""
可以在__init__.py模块中创建__all__ = ["module_name"]变量,定义*的范围
"""
two = importlib.import_module("xx.0002_remove_content_type_name")
默认搜索顺序:sys.path
- 自定义模块:当前执行脚本所在目录
- 内置模块:Python的安装目录
- 环境变量:PYHONPATH路径
- 第三方模块:Python安装目录里的site-packages目录
示例¶
#!/usr/bin/env python3 # 告诉Linux/Unix系统执行程序时运行哪个解释器
# coding:utf-8 # 或-*- coding: utf-8 -*-,表示文件使用标准UTF-8编码,python3已经不需要加这个了
'''任何模块代码的第一个字符串都被视为模块的文档注释'''
__author__ = '7c' # 标注作者
import sys
import os
# sys.path.append("..")
sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
from a import am
# 查看模块可以直接调用的方法
print(xxx.__all__)
print(dir(xxx))
def b1():
am.a1()
print("我是b1")
"""
全局变量__name__为当前模块名
当模块被直接执行时,模块名为:"__main__"
当模块被导入时,模块名为:"文件名"
"""
if __name__ == "__main__":
b1()
最后更新:
2023-08-06