【python基础】十五、Python 模块

标准库

标准库 说明
builtins 内建函数
math 数学库
random 随机数
time 时间
datetime 时间和日期
calendar 日历
hashlib 加密算法
copy 拷贝
functools 常用工具
os 操作系统接口
re 正则
sys 自身运行环境
multiprocessing 多进程
threading 多线程
json 编码解码 json对象
logging 记录日志

自定义模块

# 变量
# 函数
# 类
  • 导入模块

    import 模块名
    模块名.方法
    模块名.变量
    模块名.类

    from 模块名 import 一部分(类\变量\模块)

    from 模块名 import *

    取到 模块内 all = [’’,’’,’’] 内限制的内容, 仅对 import * 起作用

模块内不希望被调用的部分

__name__ 表示 正在执行的名字

if __name__ == '__main__':
    # 只有执行本模块时,__name__ = __main__
    # 被调用时,__name__ = 模块名
    pass

不同模块 同名函数

  • 包 和 文件夹 的区别
    • 文件夹 非py文件,放jpg txt html 等
    • 包 放py文件 __init__
      • 不同包内 放同名文件 不冲突
      • 一个包内 可以放多个模块

project > package > models > class func 变量

  • 使用包package中的模块

      import package_name import models
      或
      import package.models import func
    
  • 同一个包内 互相导入

      import package.models import *
      或
      import .models import *
    
  • 包内 __init__.py 作用

    • 导入包的时候,默认执行__init__.py文件

    • 包内的内容 可以通过包名调用

    • __init_.py 可以加入__all_ 暴露模块名

         from package import *
      
    • 没有的__all__的话,无法使用

循环导入

# file: A.py
import B
    def A():
        B.B()
# file: B.py     
import A
    def B():
        A.A()
  • 会报错,这是一种错误方式,架构不当

A模块调用 B模块
B模块调用 A模块

  • 避免产生循环导入
    1. 重新架构
    2. 挪动import的位置

在b站学习中

个人主页

学习链接

欢迎 批评 指正

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章