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()

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

后记

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

相关推荐
leoZ2311 小时前
Vue3 还原一个企业级后台-14-项目总结
开发语言·人工智能·后端·opencv·计算机视觉·数据挖掘·rust
weixin_BYSJ19871 小时前
flask民族服饰饰品商城小程序---附源码37399
java·javascript·spring boot·python·小程序·django·php
zlinear数据采集卡1 小时前
数据采集卡从入门到精通(7):流水线型ADC——级级接力,高速与高精的平衡术
开发语言·arm开发·嵌入式硬件·fpga开发·c#
Orange_sparkle1 小时前
从五个 TypeScript 文件看懂 Coding Agent:一次 nano-pi 学习复盘
javascript·学习·typescript
帅气的小峰2 小时前
pybind11与nanobind可以共存吗?如何迁移?
c++·python·cuda·推理引擎
用户298698530142 小时前
从入门到自动化:TXT 转 Word 的在线工具与代码实战方案
人工智能·后端·python
m4Rk_2 小时前
【论文阅读】Agent 记忆机制(40):HiAgent——通过子目标级记忆提升长程任务执行能力
论文阅读·人工智能·学习·开源·github
Dr.kangder2 小时前
嵌入式面试总结(二十一)——C语言关键字
c语言·开发语言·面试·职场和发展·架构·虚拟化
W_326002 小时前
Python-OpenCV:库、环境搭建、图片与摄像头解析
开发语言·图像处理·python·opencv·机器学习
zhy295632 小时前
在 QAIRT Genie SDK 上部署 Llama 3.2 1B 模型:从环境准备到 C++ 推理
开发语言·c++·llama