11. 用别人写好的代码,完成我的工作,剩下的时间去摸鱼
今天是持续写作的第 <font color="red">11</font> / 100 天。
如果你有想要交流的想法、技术,欢迎在评论区留言。
Python 为何那么多人都喜欢,就是因为很多大佬给我们造好了“轮子”了,拿着大佬的轮子,我骄傲~
已完成的文章
1.这才是 Python 学习的正确起手姿势,滚雪球学 Python
2. 无门槛学会数据类型与输入、输出函数,滚雪球学 Python
3. 无转折不编程,滚雪球学 Python
4. 列表一学完,Python 会一半,滚雪球学 Python
5. Python 循环的本质就是一段代码懒得重复写
6. Python 元组,不可变的列表,滚雪球学 Python
7. ✎ 会查新华字典不?会。Python 字典已经掌握了
8. ㊙ Python 集合三板斧,滚雪球学 Python
9. Python 学习过程的第一个山坡,99%的人都倒在了山坡下
10. 比找女朋友还难的技术点,Python 面向对象
**
本系列文章将在 2021 年春节前完成,欢迎关注,点赞,评论 --- 梦想橡皮擦
**
十一、Python 模块的设计与应用
模块是一个概念,它包含 1~N 个文件,如果文件是 Python 代码文件(就是.py 结尾的文件),那每个文件中可以包含函数,类等内容。
在公司工作,很多项目都是协作开发来完成,一个项目后面可能存在很多工程师,为了开发方便,每个人负责的功能函数或者类都尽量封装在一个模块中,模块英文请记住 module
,有的地方叫做 库
,也有的地方叫做 包(package)
,对于现阶段的你来说,当成一样的内容就好。
互联网上存在大量的开源模块,这些模块最大的优势就是免费,很多时候使用这些模块能极大的提高编码效率,这也是很多人喜欢 Python 的原因之一。
11.1 将函数放到模块中
模块学习的过程,不能按照语法结构来学习,它是一种抽象的知识,是一种代码的设计方式。例如将写好的函授放到模块中。
以上内容声明了两个函数,当然函数名你必须好评,翻译的准确有意义。
接下来就将上面的函数整合到一个模块中去,建立一个新的文件 stir_fry.py
然后将两个函数复制到新的文件中。
stir_fry.py 文件包含那两个函数
好了,完成任务,一个模块创建完毕了,这个 stir_fry.py
文件就是一个模块。
你现在脑中肯定出现黑人问号脸了,What?这就完了。是的,完了,一个低配模块完成。
下面就可以拿着这个模块给别人使用去了。会写模块成为大佬之后,就可以给新入行的菜鸟指点江山,写模块了。
11.2 应用函数模块
11.2.1 import 导入模块
在另一个文件中,可以通过 import 模块名
导入一个模块,例如导入刚才创建的 stir_fry
模块。
注意要新建一个文件,文件名随意但是不要与模块同名。
如果想要使用模块中的函数,只需要参考下述语法格式即可。
通过 stir_fry
调用模块中的函数。
当通过 import stir_fry
导入模块之后,该模块内的所有函数都一次性导入到新文件中了。
11.2.2 导入模块某个函数
如果不想导入模块的所有函数,而只导入某个函数,使用一下语法可以解决该问题。
修改上一节案例:
直接导入模块中的函数,使用时不需要通过 模块名.
的方式调用,直接书写函数名即可。
导入模块中多个函数
语法格式如下:
导入模块所有函数
语法格式如下:
11.2.3 as 别名
刚才通过模块导入函数你应该发现一个潜在的问题,就是函数名称太长怎么办,除了名称太长,还存在一种情况,模块中的函数名称与当前文件中函数的名称,存在重名的风险。此时可以学习一个新的内容,通过 as 给模块导入进来的函数起个别名,然后在该文件都使用别名进行编码。
语法格式如下:
上述内容应用到案例中如下述代码:
as 别名也可直接作用于模块,语法格式如下:
11.3 将类放到模块中
随着程序设计变的越来越复杂,只把函数放到模块中已经不能满足要求了,需要将更高级的内容放到模块中,也就是类。
首先在 dog_module.py
文件中定义一个类。
此时的 dog_module
就是模块的名称,而在该模块中只有一个类 Dog
,也可以在该模块中多创建几个类,例如:
11.3.1 import 导入模块(类)
与导入模块的函数部分知识一样,如果希望导入一个模块中的类,可以直接通过下述语法格式实现:
使用模块中的类,语法格式如下:
具体代码不在演示,自行完成吧。
11.3.1 导入模块某个类
导入模块的类和导入模块的的函数用法是一致的。
新建一个 demo.py
文件,在该文件导入 dog_module
模块中的类。
从模块中导入多个类
该方式与函数的导入也一致,语法格式如下:
导入模块中所有类
学到这里,你应该已经发现导入模块中的函数与导入模块中的类,从代码编写的角度几乎看不出区别,对比着学习即可。
导入类的时候也可以应用别名,同样使用 as
语法。
11.4 常见模块
学习到这里你对模块是什么,模块怎么用已经有了一个基本认知,接下来先不用自己写一个特别牛的模块,我们先把一些常见的模块应用起来。
11.4.1 随机数 random 模块
通过随机数模块可以获取到一个数字,它的使用场景非常广,例如游戏相关开发、验证码相关、抽奖相关,学习了随机数之后可以完成一些非常不错的小案例。
randint 方法
导入随机数模块之后,可以通过 randint 方法随机生成一个整数,例如下述代码:
反复运行代码会得到一个 1~10 之间的数字,由此可以 randint 方法中的参数含义。
你可以尝试给 randint 函数起一个别名吗?
choice 方法
通过 choice 方法可以配合列表实现一些效果,choice 可以随机返回列表中的一个元素。
如果你想知道 choice 方法的具体用法,还记得怎么查询吗?
shuffle 方法
该方法可以将一个列表的顺序打乱。
简单挑选了 random 模块中的三个方法做为说明,对于模块的学习,后面将为每个模块单开一篇文章书写。
11.4.2 时间 time 模块
时间模块是 Python 中非常重要的一个内置模块,很多场景都离不开它,内置模块就是 Python 安装好之后自带的模块。
time 方法
time 模块主要用于操作时间,该方法中存在一个 time 对象,使用 time 方法之后,可以获取从 1970年1月1日 00:00:00
到现在的秒数,很多地方会称作时间戳。
输出内容:
sleep 方法
该方法可以让程序暂停,该方法的参数是的单位是秒。
使用语法格式为:
asctime 与 localtime 方法
以上两个方法都可以返回当前系统时间,只是展示的形式不同。
time 模块涉及的方法先只涉及这么多,后续滚雪球学习过程中在继续补充。
Python 还内置了很多模块,例如 sys 模块、os 模块、json 模块、pickle 模块、shelve 模块、xml 模块、re 模块、logging 模块等等内容,后续都将逐步学习到,有可能需要分开专题给大家讲解。
11.5 这篇博客的总结
Python 模块,快速编码的一种途径,很多时候第三方模块可以帮你解决大多数常见编码场景,让你在编码的道路上飞奔。
**想学 Python 爬虫,可以订阅橡皮擦专栏哦~
** 🈲🈲🈲🈲 点击发现惊喜 🈲🈲🈲🈲
🈚🈚🈚🈚🈚
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/e4c67b718204d04534a5795b7】。文章转载请联系作者。
评论