day17 包

 

什么是包

    包的本质是文件夹

为什么使用包

    函数可以使得同一个文件中代码结构更清晰

    模块(py文件)是以文件形式来组织代码结构    

    如果文件越来越多 管理起来也不方便 所以需要使用文件夹来管理 从文件夹级别来管理模块

包的使用

    如何创建包

    新建一个文件

    包和文件夹仅有一个区别 包中应该含有一个__init__.py文件

__init__.py文件的作用

    包也是模块

    在导入一个模块时发生三件事情都一样

    包在是第二步需要执行被导入的文件,包只是个文件夹不能直接执行,所以需要提供一个py文化部用来代表这个包成为一个模块

    init是初始化单词的缩写 表示对包中的内容进行初始化

    包的初始化其实就是导入这个包中所有其他模块

    总结:导入包时本质上就是导入包下的__init__.py文件

    注意:init文件的作用仅仅是导入包内模块 提供给外界使用 所以不应该在里面写逻辑代码

    init是可选的 可有可无]

    在py2中要求必须有 py3是可选

    如果没有init文件,在使用模块时就直接使用文件夹点需要的模块名称

    init好处

    可以将保内模块的功能直接导入到__init__中,这样依赖对于包的使用者而言 可以无需考虑要使用的功能在那里文件 直接调用功能即可

使用包的流程

    1.创建一个包

    2.编写包内部的模块代码

    3.写完之后打开init文件,将需要提供外界使用的模块导入其中(可以省略,可以不提供init)

 

相对导入和绝对导入

    相对?

    指的是向对面某个模块而言的导入路径

    语法: form . import 名称 .表示的是当前这一级目录

    再加一个点表示上一级即..

    注意:执行文件中不能使用相对导入

            使用相对导入时不能使用点返回到执行我呢间所在的一层

ValueError: attempted relative import beyond top-level package

相对导入 超出了顶层包

        相对导入仅用于同一个宝贝的模块间相互导入

绝对?

    指的是从执行文件开始的绝对路径,注意补水问价电脑绝对路径

 

循环导入

    开发时模块可能有很多,极有可能出现循环导入

    循环导入指的是 :

    两个模块 相互导入 你导入我 我导入你

s

    会出现以下错误

    解决 方案就是不要循环导入 这明显设计有问题

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值