【python笔记】模块的定义与导入

目录

前言

模块的概念

包与模块

模块的导入

import-as形式导入

from-import形式导入

form-import-*模糊导入 

获取未知模块的函数

__init__.py文件的作用 

菜作者纠错区

python彩蛋


前言

本博客是作者学习时总结的笔记,如有错误还望指正。

模块的概念

我的理解:模块就是一个个的python文件,放到不同的文件夹里,去定义一些函数或者变量,然后在主要的那个文件中,可以引入这些文件中的函数或者变量,然后可以直接的利用这些函数或者变量进行程序处理。

包与模块

我的理解:包就是文件夹(确切的说还要带个__init__文件,不带也不是不行,但是不是官方认可的包),模块就是python文件。一个文件夹里可以放很多python文件,所以一个包里有很多模块。

大体形式如下:

就是文件夹而已,函数可以放到run_fill里,然后执行的文件可以放到run中,到时候直接用就行,避免了全放到一个文件里,不好维护,也很繁杂。

模块的导入

import-as形式导入

语法:import 【路径+库名】 as 【随便一个方便输入的名字】

实例:

文件夹长这样:

注意,我把那个__init__.py给删了,虽然我们目前这个包不是官方认可的包,但还是能用,但也还是有区别,后面整理有什么区别。

run_fill文件长这样:

定义了一个没什么卵用的函数,下面的单纯是为了检验函数有没有出错用的,忽略就行。

run文件长这样:

 这个文件,我给他的定义是一个执行文件,主要的处理都是在这个文件里执行。

能得到这样的结果:

 可以看到,在run_fill中定义的函数,能够在我这个执行文件run中执行。

讲解:

import,是一个把其他模块中的函数导入本模块中的一个关键字。

我们想调用run_fill中的函数,那么我们可以看到,run_fill在content文件夹里。

那我们就可以import content.run_fill来实现把run_fill中的函数导入到run中。

我们可以不使用as,但是后果是我们引用put_out函数的话需要输入

content.run_fill.put_out()

我觉的,没谁会想输入这么大一长串。

用as就会把content.run_fill给等价于后面的那个rf,让我们输入效率提高。

from-import形式导入

还是上面的那个程序包,我只改一下run文件。

修改后:

这个形式,我可以只导入run_fill这个文件中的put_out这一个函数。

好处:用import的那个形式,你会直接导入整个模块,有时候我们用第三方库的时候,我们只需要用几个函数,如果我们全导入的话,我们原本只有几kb的程序,你打包后,会发现他尽然有好几个mb,占内存很多,所以用这个方法可以减小内存。

form-import-*模糊导入 

一个一个导入很麻烦,可以用*代替,后面的处理中,你想用啥函数直接用,用了他自动导入。

改run文件如下:

输出

 

直接可以用里面的函数了,只有你在后面用过的函数才会自动导入,如果没有就不会导入。

获取未知模块的函数

当然有时候,这个模块不是我们写的,我也不知道里面有什么,那可以用dir()来查看。

假设我现在闭着眼说瞎话,run_fill不是我写的,我想知道里面的函数。

 

后面有个put_out就是我定义的函数,这个a是我刚刚在run_fill里写的a=1

变量也给你拉出来了。

__init__.py文件的作用 

前面的例子我说过,我把__init__文件给删除了,现在我给他加上。

加上这个文件之后content文件夹就变样了,说明python认可了这个包。

以后别学我删除,因为这个才算python认可的包,本来是想删除,到时候演示如果没有这个文件有些导入是导入不了的,但是莫名其妙的让我导入进去了

也不知道是编辑器的原因还是python版本的原因,不过你们尽量还是带上这个文件,以免到时候你们的导入出现问题。

__init__文件可以是空的,只要有这个文件就算是python的包,当然他也有他的作用

我改一下文件:

多加一个fill2

里面定义一个put_out2

__init__中加一个这个

输出这两个

可以看到,我无法导入run_fill2,原因是__init__中我配置了只能导入run_fill1,所以2就无法导入。

__init__配置语法:

__all__=["模块名",“模块名”]

只有在里面的才能被用*导入,但是如果指名点姓的导入还是可以的,他只能控制模糊导入。

菜作者纠错区

(当前空空如也)

python彩蛋

输入:import this

有开发者的彩蛋。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

北岭敲键盘的荒漠猫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值