python基础学习笔记第九章——模块、包
一、模块Module1. 概念一个.py文件就是一个模块里面可以写函数、类、变量、代码通过导入方式使用。作用拆分代码、复用代码、避免一个文件太臃肿。2. 导入语法# 方法1导入整个模块推荐 import 模块名 模块名.函数() # 取别名 import 模块名 as 别名 别名.函数() # 方法2导入指定函数/类最常用 from 模块名 import 函数1, 函数2 函数1() # 方法3导入全部不推荐可读性差 from 模块名 import *二、模块里的两个内置变量1.__name__最常用文件直接运行→__name__ __main__文件被别人导入→__name__ 文件名用途让模块只在直接运行时才执行代码被导入时不执行。def test(): print(我是模块功能) # 只有直接运行这个文件才会执行 if __name__ __main__: test()若导入的多个模块有同名的功能则后导入的功能生效。2.__all__控制 import *但不能控制单独导入当使用import *时可以控制哪些功能可以导入在模块里写# 只允许 import * 导入这两个函数 __all__ [B1, B2] def B1(): pass def B2(): pass def B3(): pass # 不会被 * 导入三、包Package1. 概念存放多个模块的文件夹一个包包含多个.py文件同时必须包含__init__.py文件。包 文件夹 __init__.py会自带必须有 多个.py模块作用管理多个相关模块避免模块名冲突让代码结构更清晰、层级更分明便于大型项目的代码组织和维护比如将功能相关的模块放在同一个包下方便查找和复用。2. 包的导入写法推荐包名my_package 模块B.py 函数B1()# 方法1最清晰、最推荐 from my_package import B B.B1() # 方法2直接导函数 from my_package.B import B1 B1() # 方法3导入整个包 import my_package.B my_package.B.B1()3. 包里面的__all__写在__init__.py里__all__ [A, B]__all__默认为None。作用控制from 包 import *能导入哪些模块。四、第三方包别人写好的工具Python 拥有丰富的第三方包生态这些非官方内置的包能大幅提升开发效率覆盖科学计算numpy、数据分析pandas、大数据计算pyspark、apache-flink、图形可视化matplotlib、pyecharts、人工智能tensorflow等主流场景需通过pip install安装后以import导入使用。。安装命令# 正常安装 pip install 包名 # 国内镜像速度快 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名PyCharm 安装打开File → Settings → Project: xxx → Python点搜索包名 → 点击Install Package总结一个 .py 文件 一个模块带 init.py 的文件夹 包import/from ... import用来导入if __name__ __main__控制运行入口__all__控制*能导入什么pip install装第三方包