python——模块
{lamp/}
我们来了解一下模块的概念,一个模块可以包含许多文件,这个文件如果说是以 .py
结尾的话,那么那就是 python
的标准库。
模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python
标准库的方法。
函数放入模块里面
我们已经知道了模块的由来,模块就是把你写的代码封装好,然后再另一个文件中调用它,既然我们知道了原理,那么我们就来实际操作一些吧,做一个低配的模块。
♾️ python 代码:#首先我们来建立两个函数
def potato(*name):
print("土豆的做法有:")
for jiu in name:
print(jiu)
def cabbage(**uname):
print("白菜的做法:")
for jiu in uname.items():
print(jiu)
在这里我们已经申明了两个函数了,那么记下来我们创建一个新的 py
文件,把这两个函数复制过去。
对文件进行命名,然后这个文件就是一个模块啦!我这里新建的文件名为 jiusheng.py
。在这里及时一个低配版的模块了,在这里,你已经学会了初步的制作模块,俺们相信,只要你一直努力,一定会写出好的模块共大家使用和喜欢!
模块的导入与使用
我们在前面已经简单的制作了一个低配的,模块,那么现在我们呢就来使用它。
import 语句
想在另一个文件中使用 jiusheng.py
这个模块我们就要用到 import
这个语句来进行导入,语法格式如下:
import 文件名
#这里需要注意的是,新建的的文件不要和模块的名字一样哦!
使用模块中的函数语法格式如下:
♾️ python 代码:#模块名.函数名()
#例如我使用jiushneg中的函数
jiusheng.potato()
通过import导入的方式,可以将模块的全部函数导入进来:
♾️ python 代码:import jiusheng
jiusheng.potato('油炸','煮','炖')
jiusheng.cabbage(a = '清汤',b = '白菜汤')
我们运行的结果如下:
♾️ python 代码:土豆的做法有:
油炸
煮
炖
白菜的做法:
('a', '清汤')
('b', '白菜汤')
导入模块中的某一个函数
有的时候我们并不想全部导入,而只是想使用该模块的一个特定函数,那么就会用到以下语法:
♾️ python 代码:from 模块名 import 函数名
我们比对之前的导入模块,发现多了一个from,这个并不难掌握,我们下面再来看一看如果说导入多个函数的语法格式:
♾️ python 代码:from 模块名 import 函数名,函数名,函数名,等等
那么如何导入全部的函数呢?我们可以用到以下语法:
♾️ python 代码:from 模块名 import *
这样我们就导入模块的所有函数了,值得注意的是没如果说我们没有导入我们需要的函数,那么该函数是不会调用的,同时通过from导入的函数不需要模块名.函数名()来调用了。
♾️ python 代码:from jiusheng import potato
#直接导入模块中的函数,使用时不需要通过 模块名.函数名的方式调用,直接书写就好
potato('油炸','煮','炖')
#下面这个函数无法调用,运行会报错
cabbage(a = '清汤',b = '白菜汤')
模块函数的别名
我们在实际使用的过程中,通常会遇到各种各样的问题,就不如,模块中的函数名实在是太长了,同时好可能和我们的文件名一样,遇到这种情况我们就有专门的应对方式,那就是as别名。
♾️ python 代码:#我们来看一下as别名的基本格式
from 模块名 import 函数名 as 别名
#同时as别命名也可以用在模块上
import 模块名 as 别名
♾️ python 代码:from jiusheng import potato as ha
#我们吧potato函数名重新命名为ha
ha('油炸','煮','炖')
这样看上去是不是就简洁多了。
模块进阶
我们继续来提高难度,在前面的学习中,我们学习过类,那么如何把类放入模块中呢,这个就是我们下面要学习的重点,在模块中放入类。
♾️ python 代码:#我们来定义几个类
class jiu():
def __init__(self):
self.name = '土豆'
def cabbage(self):
print('真好吃')
class sheng():
def __init__(self):
self.name = '白菜'
def cabbage(self):
print('没有土豆好吃')
来看一下使用:
♾️ python 代码:from jiusheng import jiu
sheng = jiu()
sheng.cabbage()
最后,其他操作和前面的没有什么区别。
{lamp/}
总结
模块的前半段学习我们就到这里了,下一次我们将学习一些常用的模块使用。