Module 模块

前言

今天学习莫言python第二天,Module模块,虽然写博客其实往往比我学习这个东西还要费时间,但是希望可以依靠这个习惯让我坚持学习,并且加深学习的印象吧。

正文

模块的定义

模块这个名字大家可能听起来有点陌生,但是另一个名字大家应该不陌生,就是头文件。所谓模块其实就是一种让自己编写头文件的过程,也就是多文件编码。可以用import来引用,在c里就是#include。

模块的操作

模块的操作其实非常类似于"类"的操作,他就像是被写在另一个文件的类一样(分成一个又一个的模块,而避免一个文件太大的情况,并且可以实习分功能完成协同合作),只是你需要通过调用头文件来完成对这个"类"的调用,然后你只要在你的头文件里编写函数,那么你就可以用头文件+'.'+函数来完成对函数的调用。

python 复制代码
import file #通过这种方法来调用file的函数
print(file.create_name())
file.print666()

ps:这里需要注意两点:

1.在头文件import file过程中,程序其实先将file文件中的代码都进行了编译运行,所以不要在头文件中带有一些输入,输出等执行语句,不然只要你调用这个头文件,他就会输出。

2.这样的调用方式只适合在同级两个py文件的情况下,但其实很多时候,一个头文件是一个文件夹,但是这样就不能直接使用了,那么怎么办呢?下面我们来进行讲解。

模块的进阶操作

事实上我们往往是将一个具有一系列庞大功能的文件变成一个文件夹(比如是head),然后对这个文件夹进行一次调用。

并且这个head里面还有文件或者下一级文件夹

但是这个时候你会发现,如果直接import head 那么你其实只是将head这整个文件夹导入进去了,但是没有一个具体的文件,所以也就无法使用里面的函数,你需要

python 复制代码
head.test.print_test()

才能调用test文件里的函数,这就更不必说更深的文件夹了,所以显然这是不可取的,那么这时候就又要提到我们之前提到过的,其实模块和类很相似,模块就是放在文件夹里的类,所以我们可以对这个文件夹进行编写初始化函数__init__.py,我们可以在这里对这个头文件进行初始化。

python 复制代码
from .test import print_test
from .test2 import print_kk
from .wjj.test3 import print_666

就是.文件夹的嵌套,最后一个就是包含了你的函数的文件名,然后import把文件给出来,就可以直接通过最外边的头文件直接把函数调用了

python 复制代码
# me.py

from head import print_test
from head import print_kk
from head import print_666
# print(file.create_name())
# file.print666()
print_test()
print_kk()
print_666()

其实就是在初始化的时候,把一些路径给提前规划好了,这样就可以相当简便的去引用各个函数

后记

这就是这个模块的相关操作,初学没必要,但是之后的大型工程这个用的会比较多,先学着吧,总会有用的。

相关推荐
hmywillstronger2 分钟前
【Grasshopper】【Python】点集排序:带索引的Z字形排序算法
windows·python·排序算法
无限大.6 分钟前
使用 Flask 构建视频转 GIF 工具
python·flask·音视频
程序媛徐师姐8 分钟前
Python基于OpenCV和PyQt5的人脸识别上课签到系统【附源码】
python·opencv·人脸识别·pyqt5·人脸识别上课签到系统·上课签到·上课签到系统
沉默的煎蛋8 分钟前
KMP算法
java·开发语言·前端·算法
skywalk816318 分钟前
Windows下建立Jupyter-lab 编程环境
ide·windows·python·jupyter
秋已杰爱21 分钟前
string底层实现细节
开发语言·c++
@大迁世界29 分钟前
Next.js 与 React.js 的对比分析
开发语言·前端·javascript·react.js·ecmascript
南巷逸清风36 分钟前
LeetCode 110.平衡二叉树
c++·python·算法·leetcode
spe14371 小时前
【零基础学Java】基础文件的创建编写和运行
java·开发语言
北顾南栀倾寒1 小时前
[Qt]系统相关-文件操作-QFile、QFileInfo类以及相关操作函数
开发语言·c++·qt·用户界面