Python导入包与制作包


​🕶️师兄简介:机械专业,通过自学成功进入IT领域,求学期间实现经济独立,对自学、兼职、计算机、学习规划等有独到见解!「点击了解更多


🤖师兄致力解决在大学生活与学习中遇到的各种问题.


🎁 公众号「渣师兄」内回复「渣学」可获得超 5T 的新生见面礼!


🔗官方网站: 渣学网 →「zhaxueit.cn」→ 大学生活与学习一站式解决方案.


🙏找师兄帮忙「无偿」请➕💓:zhaxueit

📓进资源群「每日分享」【免费】(坑位有限)也请➕💓:zhaxueit 并备注「进群」

👀个人主页:@渣师兄 ,欢迎关注、私信师兄!


🐐 登高必自卑,行远必自迩.
🍇 我始终坚信越努力越幸运
⭐️ 那些打不倒我们的终将会让我们变得强大
🍑 希望在编程道路上深耕的小伙伴都会越来越好



什么是模块?

你问我答:什么是模块?

答:在python中模块就是python文件,以 .py后缀结尾,导入模块其实就是导入这个py文件,在模块中(py文件)可定义函数、类以及变量等一切可执行的代码。

例子:例如我们常用的random模块,其实就是开发人员写好了random的py文件,我们在装python的时候,将这些模块文件也安装了,所以我们可以调用这些模块(py文件)

快速代码体验

image-20211010093023550

导入模块的几种方法

注意:利用import(导入模块的第一种方法)导入某个模块(py文件)就运行这个模块中的所有代码

方法一:import 模块名

功能:导入相应的模块(py文件)
语法:

		import 模块名
		模块名 . 方法名()

注意事项:

1:这样导入的模块,在调用模块中的方法时,要在方法名前面加上模块名,例如random.randint (1,10)

2:在python中有关于除法运算中返回的结果都是浮点数

快速代码体验

image-20211010093044897

方法二:from 模块名 import 方法名1,方法名2,方法名3………

功能:导入相应模块的相应方法
语法:

		from math import sqrt
		print(sqrt(16))

注意事项:这种方法导入的模块,然后调用某个方法时,不需要在书写模块名

快速代码体验

image-20211010093057209

方法三:from 模块名 import *

功能:导入这个模块中的所有方法
语法:

		from 模块名 import *
		print(sqrt(16))

注意事项:这样导入模块,在调用这个模块中的任何方法时都不需要再次书写模块名了

快速代码体验

image-20211010093109143

方法四:import 模块名 as 新的模块名(重写模块名)

功能:导入一个模块并且将这个模块进行重命名
语法:

		import 模块名 as 新的模块名
		新的模块名 . 方法名

快速代码体验

image-20211010093124454

方法五:from 模块名 import 方法名 as 新的方法名(重写方法名)

功能:导入某个模块中的某个方法,并且将这个方法进行重命名
语法:

		from math import sqrt as newsqrt
		print(newsqrt(16))

快速代码体验

image-20211010093136160

制作模块

注意:利用import(导入模块的第一种方法)导入某个模块(py文件)就运行这个模块中的所有代码

一:制作模块(p340)

功能:将一些工作中频繁使用的函数、类、变量等封装在一个py文件中,这样可以降低我们的工作量,简化代码,在python中,一个py文件就是一个模块,因此在制作模块的时候,模块(py文件)名称要符合标识符命名规则,并且模块名与方法名不要与python内置的函数、模块等重名,这是很重要的

二:制作模块步骤

第一步:定义模块,即新建一个py文件,名称符合标识符命名规则,在这个py文件中定义相应的函数、类、变量等

image-20211010093203282

第二步:测试模块,即在模块(py文件)内运行定义的函数、类等,看是否可以正常运行

image-20211010093210353

第三步:调用模块中的方法

image-20211010093217225

制作模块及导入模块的注意事项

注意事项:

一:自己新制作的模块名称(py文件名)不要与python内置的模块重名,否则会导致内置的模块不可用

image-20211010093230742

二:利用 from 模块名 import 方法名 导入一个方法的时候,如果这个模块里面有两个同名的方法名,调用的是后面的那个同名的方法

test模块中存在两个同名方法test1()

调用test模块中的同名方法,观看结果

image-20211010093243827

三:利用 form 模块名 import 方法名 导入模块中一个方法的时候,如果在程序中有与模块中的方法名同名的函数,那么在调用这个方法的时候,调用的是后定义的函数或者后导入的那个方法。(谁在后面调用哪个函数或者模块方法)

image-20211010093254986

对比代码

image-20211010093303443

模块查找顺序

当导入一个模块(py文件),python解释器查找这个模块位置的顺序如下

第一:当前文件夹

第二:如果不在当前目录,python则搜索在shell变量下PYTHONPATH下的每个目录

第三:如果以上都找不到则找默认路径

__all__列表

__all__列表

功能:如果某个模块中存在__all__列表,那么在用 from 模块名 import * 导入模块的所有方法代码时,因为存在__all__列表,故只能导入__all__列表中同名的那些方法

注意事项:__all__列表在导入模块方法为 from 模块名 import * 的时候才有效,其他两种方法不行

语法:all = [“模块方法名1”,“模块方法名2”,“模块方法名3”……….]

快速代码体验

模块代码

image-20211010093333826

利用from 模块名 import * 导入这个模块

image-20211010093341363

了解包

你问我答:什么是包?

答:在python中,包就是一个文件夹,用来存放那些有联系的模块(py文件),在创建包(文件夹)的时候,会自动创建一个__init__ . py文件,作用是导入包相关

制作包

pycharm制作包流程:在文件区右击 → 点击New → 选择Python Package → 为包取名 → 在包内创建有联系的模块(py文件)

第一步:右击创建包

image-20211010093403031

第二步:为包取名字

image-20211010093425368

第三步:创建好的包自带__init__.py文件,用于导入包相关

image-20211010093432962

第四步:在包内创建有联系的模块(py文件)

image-20211010093440971

导入包的两种方法

本节资料:

包 newpackage 内模块1 my_module1.py 和模块2 my_module2.py 代码如下

模块1 my_module1.py 代码

image-20211010093510132

模块2 my_module2.py 代码

image-20211010093518247

导入包的两种方法

方法一:利用import进行包的导入

功能:导入包内的模块,从而使用模块内的方法

语法:

	import 包名 . 模块名
	包名 . 模块名 . 方法名

快速代码体验

image-20211010093536004

方法二:利用 from 包名 import * 导入包内的模块

功能:在包内的__init__.py文件内定义__all__列表,列表内存放需要导入的模块名

语法:

		from 包名 import *
		模块名.方法名

注意事项:

init.py文件内的__all__列表存放的数据(模块名)必须是包内有的模块名

利用from 包名 import * 导入包的模块,必须在包内的__init__.py文件内设置__all__列表,控制允许导入的模块。(这点很重要)

快速代码体验

init.py文件内__all__列表存放的数据

image-20211010093550144

用 from 包名 import * 导入newpackage包中特定的的模块

image-20211010093618276

未完待续…

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

渣师兄

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

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

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

打赏作者

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

抵扣说明:

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

余额充值