今天用一个高效学习编程的顶级思维,讲解python模块的正确使用姿势。
你在学习编程的时候可能会遇到这样的问题,自己看书的时候明明已经看懂了,感觉自己也记住了。但是当你自己开始敲代码的时候脑子空空,写什么都费劲。
这是为什么?
因为你没有掌握正确的学习方法,现在我来告诉你如果学习才能提高效率。
先上过程,答案在最后。
1、模块是个什么东东?
所有别人写的或者你写的 .py 文件。
就这么简单,它就是一个包含了定义和声明的文件。
知道就好了。
需要你记住的是在 import 加载的模块中还分为几个类别:
1)、python编写的代码文件
2)、使用C或者C++编译得库或者dll
3)、多个模块组成的包
4)、内置模块(c编写并连接到python解释器)
2、为什么要使用模块
你自己编写了一段漂亮的代码,只需要传递几个参数进去就能帮你实现大量的计算。因为你熟悉这段代码的使用方式,每当遇到类似问题的时候就想使用它。
思考一下,你会怎么处理这种情况?
可以肯定是的,你会在第一时间想到,我只需要几秒钟的复制粘贴就把弄过来了。
很好!这是被允许的。
接下里你又需要用到自己写的别的代码或者别人写的很实用的代码,继续复制粘贴。
很好!用不了几次,你正在写的解决问题的代码已经被七七八八的代码给搅乱了,自己都看得头疼有没有!
模块的概念就是为了解决这个问题诞生的。
程序越来越大,功能也越来越多,你把它分成一个一个的.py文件看起来就很舒服。
无论是单个的文件,还是这个整体的功能被包成一个模块,在你写其他文件的时候用import 的方式引用过来。
实现了功能的多次高效率运用。
3、该如何使用模块呢?
3.1 import
1)、使用pycharm 建立一个 import_pro.py 文件,并输入如下代码
2)、同级目录下建立一个新的py文件 fibo-test,输入代码并运行
知识点:模块可以包含可执行的语句和函数定义,他们在第一次被import的时候被执行
3)、每个模块都是独立的名称空间,你不用担心自己写的变量和模块中的变量起冲突
4)、你还可以为你导入的模块起个炫酷的名字
5)、你还可以在一行中引入多个模块
比如: import re,os,sys
3.2 from ...... import ......
1)、直接把需要使用的函数引用过来,这样你就可以不用打点调用,看起来又舒服了不少。
2)、如果当前文件存在与被引用模块中相同的函数名,则会发生当前覆盖引用
3)、也可以使用 as (这就不用上图了吧)
4)、你可能会联想到下面这种方式
from import_pro import *
不建议使用这种方式,因为你也不知道自己都把什么给导入到你的文件中了,直接放弃这种方式就好。
5)、模块的循环引用
我在a中引用b中的函数,在b中引用a中的函数
可以,但请放弃这种方式。
当你被一个Bug折腾得死去活来的时候,才想起来老师当年说过这样不好!
3.3 模块的搜索路径
内存中已经加载的模块->内置模块->sys.path路径中包含的模块
需要注意的是:我们自定义的模块名不应该与系统内置模块重名
4、模块还有哪些注意事项?
4.1 模块名区分大小写
foo.py 与 FOO.py 代表的是两个模块
4.2 标准模块
Python 附带了标准模块库,详见 Python 标准库参考手册
4.3 dir()函数
内置函数 dir() 用于查找模块定义的名称。返回结果是经过排序的字符串列表:
>>> import import_pro
>>> dir(import_pro)
读者自行在编辑器中录入并执行,结果更为直观
----------------人工分割线----------------
经过上面的演示,相信聪明的你已经找到了提高学习效率的规律。
答案很简单,就是提问!
如果你还没有掌握自我提问的技巧,请不要着急。
按照下面几个问题进行回答,已经能帮助你解决问题,当我们熟练以后再更新它。
1、XXX的概念是什么?
2、使用XXX的好处是什么?
3、如何使用XXX?
4、使用XXX还有哪些注意事项?
----------------人工分割线----------------
每次面对一个新问题都把这四个问题当作必答题进行解答,经过一段时间的使用,你会发现这些知识逐渐变成你自身的能力了。