python-模块与包(自我总结)

  • 模块
  1. 系统模块

  2. 自定义模块

  3. 循环模块

**

模块

**
1.系统模块
标准库 说明
builtins 内建函数
math 数学库
random 随机数
time 时间
datetime 时间和日期
calendar 日历
hashlib 加密算法
copy 拷贝
functools 常用工具
os 操作系统接口
re 正则
sys 自身运行环境
multiprocessing 多进程
threading 多线程
json 编码解码 json对象
logging 记录日志
2.自定义模块
主要是导入模块:
1.import 模块名
模块名.变量 模块名.函数 模块名.类
2.from 模块名 import 变量|函数|类
在代码中可以直接使用变量、函数、类,不像1中那样每次还需要进行调用了
3.from 模块名 import **
该模块的所有内容
但是如果想限制获取的内容,可以在模块中使用__all__[使用
可以访问到的内容]

__all__ = ['add','函数名','变量']

4.无论是import还是from的形式,都会将模块内容进行加载
如果不希望其进行调用,就会用到__name__
在自己的模块里面__name__叫:main
如果在其他模块中通过导入的方式调用的话:name:模块名

if __name__=='__main__'  #如果在自己的模块内进行调用,就会执行
    pass

**

**
注意文件夹和包的区别:
文件夹里面:是非py文件
包里面:是py文件
项目>包>模块>类、函数、变量

在一个包中调用另一个包中的类、变量等。
1.from 包 import 模块
使用模块中的东西的时候:模块.变量|类|函数
2.from 包.模块 import 函数
然后可以直接进行使用
3.*from 模块 import ** 表示可以使用模块里面的所有内容, 如果没有__all__所有的都可以进行访问,但如果添加上了__all__,则只有列表中的可以访问
*from 包 import ** 表示该包中的内容是不能访问的,就需要在__init__.py文件中定义__all__ = [可以访问的模块]

init.py文件
导入包的时候默认调用__init__.py文件
作用:
当导入包的时候,把一些初始化的函数,变量,类定义在__init__.py文件中,此文件中的函数,变量等的访问,只需要通过: 包名.函数进行访问

循环模块的导入

# file: A.py
import B
    def A():
        B.B()
# file: B.py     
import A
    def B():
        A.A()

这是一种错误方式,架构不当
解决办法:
1.重新架构
2.将导入的语句放到函数里面
3.将导入的语句放到模块的最后

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值