python模块与包

模块与包

2 模块 module

定义:包含一些列数据,函数,类的文件,通常以.py结尾

模块与模块之间互相调用怎么办?

2.1 模块导入

module01模块
print('模块1')
def f1():
    print('模块1的f1')
demo1模块
第一种方式
import module01
module01.f1()
demo1模块
第二种方式
from module01 import f1
f1()
第一种方式
import 模块名
本质:使用变量名比如说module01关联的模块地址,所以将来你用import导的时候要求大家还要用这个函数名才能点出东西
第二种方式
from ... import ...
本质:将指定的成员导入到当前模块作用域中
第三种方式
from .. import *
本质:将指定模块的所有成员导入到当前的模块作用域中

注意:导入进来的成员不要与当前模块成员名称相同
就近原则

as取别名(取外号)
from module01 import f as f1
from module02 import f as f2
from module03 import f as f3

f()

2.2 隐藏成员

模块中以下划线(_)开头的属性不会被导入,通常这些成员为隐藏成员

from module01 import _f2

所谓的隐藏成员只对 * 号有用

2.3 模块变量

__file__:模块对应的文件路径名
绝对路径就是从操作系统的根开始的
__name__:模块自身的名字,可以判断是否为主模块
相同的代码都是打印模块名,有两种值,一种是真,一种是假

注意:当此模块作为主模块运行的时候,__name__绑定的是__main__。不是主模块而是被其他的模块导入的时候,绑定的是模块名

主模块叫做__main__
非主模块叫做真名

在家是程序__main__
在外是模块,模块名

python的main的作用:
1.有别的语言基础的同学,不要把main搞混了
	python中是一个python文件作为程序来运行的时候,那么__name__的值为__main__,如果是作为模块来运行的时候,他的__name__的值为模块名
2.把一些非必要的代码放到main函数里面

快速写法:
	pycharm中输入main,然后按回车或者tab键就可以生成
    if __name__ == '__main__':

2.4 模块分类

四大类型:
1.内置模块,再解释器内部可以直接使用
2.标准库模块,安装python的时候就可以直接使用
time random
用的时候直接import导入
可以使用但是要导入
3.第三方模块,通常是开源,需要自己安装
安装:pip install 模块名 pyinstaller
卸载:pip uninstall 模块名


PIP国内源
1)清化大学
PIP源地址:https://pypi.tuna.tsinghua.edu.cn/simple
2)阿里云
PIP源地址:http://mirrors.aliyun.com/pypi/simple/
3)豆瓣
PIP源地址:http://pypi.douban.com/simple/
4)中国科学技术大学
PIP源地址:http://pypi.mirrors.ustc.edu.cn/simple/
5)华中科技大学
PIP源地址:http://pypi.hustunique.com/
    
pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple

4. 用户自己编写的模块(可以作为别人的第三方模块)

3 包 package

语句==》函数==》(学习面向对象的时候会学习)类==》模块==》包

包的定义:讲模块以文件夹的形式进行分组管理,其实就是管理模块

包的作用:让一些相关的模块组织在一起,是逻辑结构更加清晰

为了结构清晰而发明

3.1包的导入

from package01.m01 import f1 
from 报名.模块名 import 成员
from package01.package02.m02 import f2

import package01.package02.m02
package01.package02.m02.f2()

import package01.package02.m02 as m02
m02.f2()

3.2 – init --.py

init是包内必须存放的文件,会在包加载的时候自动调用

总结包的核心作用
把一些相同的类似功能的模块放到一个文件夹里面,进行统一管理
在导入包里面的模块的时候,__init__.py的代码也会自动执行,所以可以利用这个机制,在__init__的代码里面写上关于这个包内模块的使用说明
我们在导入不是init的时候,导入同级别包下面别的模块,也同样会输出init的内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学习的小初雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值