BS-1python基础知识-1.8 包,模块管理

在这里插入图片描述

包与模块管理

主脚本

1.** 程序运行时通常有一个入口文件:在系统的环境变量中,会有一个叫做name的东西,name是main的话,表明是当前的主函数或是主角本。**
举例如下

def hello():
    print('hello 优品课堂’)

if _name_ == '_main_':
    hello()

随着项目越来越复杂,我们会分门别类将不同功能封装在不同的文件中,接下来就会用到模块的管理。

模块

什么是模块

将一些功能逻辑写在一个后缀为.py的文件里面,就可以将这个文件称为一个脚本/一个模块。需要的时候去调用。

举例说明:
新建一个models.py文件,文件中内置函数,注意函数的写法models.test()
在这里插入图片描述
再建一个views.py文件,内置函数.
在这里插入图片描述
考虑到代码的重用,定义函数是第一步,接下来便于维护和扩展,
第二步将函数分门别类放到不同的脚本文件中, 就可以称这些脚本文件为模块。实际上这些模块相互之间不是孤立的,有可能相互有联系,且会相互调用。
应用:在一个模块/脚本中想要调用另一个模块/脚本,需要使用“引入”代码
“引入代码”关键字:

导入方式

import(导入),from(从什么地方导),

1.import导入是将整个包都给导入过来,所有空开的可见的信息都可以看到了,用的时候必须把模块都写上

举例说明:
要使用math模块,
显示math模块是built-in内置的
math’模块下会有很多成员
在这里插入图片描述
使用:
使用时,pycharm中有许多提示
提示math模块中的许多方法

在这里插入图片描述
在一个脚本中调用另一个模块中的变量和函数:
可以在主函数中调用另一个模块中的函数
举例说明

在这里插入图片描述
根据不同的逻辑将功能组织在不同的模块里面,这就是关注分离,单一职责,这是软件设计的常见原则

2.from导入
导入信息明确,只导入指定的,其他的不要,导入以后不用写模块名,只用写导入的对象名
举例说明:
在这里插入图片描述
*不想调用时候写成models.page,但是又想将models模块的内容都调用过来。用from models import ,用星号
在这里插入图片描述
3.问题:实际开发中,容易有重名,解决:用明显的方式去指定,命名空间,
方法一:
不同模块都导入,用哪个就用模块名.函数名
在这里插入图片描述
方法二:导入改别名
在这里插入图片描述
4.在控制台上调用自己写的模块的内置函数
在这里插入图片描述
5.自己写的模块内部增加了内容,如何将其更新并且调用起来。

**方法一:退出原来的交互式提示符,重新import models。**这样更新后的文件内容就变为了字节码。

方法二:重新载入,标准库的专门处理导入问题的模块:importlib,importlib.reload(models)
在这里插入图片描述
出现那一行红字就说明,把模块更新后的内容导入进去了。

导入时做了什么工作,这样写导入方式的原因

1.代码重用
2.命名空间
3.实现数据或服务共享

导入时的基本步骤

1.第一步:找到模块文件
import models
2.第二步:编译为字节码
3.运行模块文件

导入模块时,搜索范围

步骤为由第一个到第三个,自己写的优先
1.当前程序主目录,
也就是当前项目中,优先于框架中的,内部的会覆盖外部的
2.环境变量
装python时候有一个叫做‘python path’的目录,
3.标准库
4.第三方扩展库
即从第三方安装的那些东西

**所以,自己定义名称时,特别是自己不去清楚标准库/扩展库有哪些成员,防止自己定义一些名称把上层的/外层的覆盖掉。

包 python package

实际上就是一个文件夹

按照不同目录去组织,导入时的问题

随着业务逻辑越来越复杂,写的文件越来越多,还需要目录去组织。
1.python Package包的概念
在这里插入图片描述
建立directory(folder或目录),只是从文件管理的角度去管理文件,不管用。让文件夹/目录成为模块路径的一个部分,用到python package包的概念。
2.python package包与普通directory的区别
新建包以后,自动在包中放了一个文件
在这里插入图片描述
自己再把一个python文件放进去
在这里插入图片描述

如何导入

在这里插入图片描述
import 包名.模块名

1.init.py 文件什么用:用来初始化信息,初始化内外链接,上下文信息,
在_init_.py 文件中写入:
在这里插入图片描述
在console 中调用a包,首先会执行_init_.py,而且只是在调用时执行一次,再次调用不会执行。执行是为了找到包中的文件并编译,以供调用。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值