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

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

后记

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

相关推荐
Y1nhl20 分钟前
Pyspark学习一:概述
数据库·人工智能·深度学习·学习·spark·pyspark·大数据技术
能来帮帮蒟蒻吗22 分钟前
Go语言学习(15)结构体标签与反射机制
开发语言·笔记·学习·golang
维度攻城狮2 小时前
实现在Unity3D中仿真汽车,而且还能使用ros2控制
python·unity·docker·汽车·ros2·rviz2
陈皮话梅糖@2 小时前
使用 Provider 和 GetX 实现 Flutter 局部刷新的几个示例
开发语言·javascript·flutter
简简单单做算法2 小时前
基于mediapipe深度学习和限定半径最近邻分类树算法的人体摔倒检测系统python源码
人工智能·python·深度学习·算法·分类·mediapipe·限定半径最近邻分类树
hvinsion3 小时前
基于PyQt5的自动化任务管理软件:高效、智能的任务调度与执行管理
开发语言·python·自动化·自动化任务管理
Aphelios3803 小时前
Java全栈面试宝典:线程机制与Spring IOC容器深度解析
java·开发语言·jvm·学习·rbac
qq_529835354 小时前
装饰器模式:如何用Java打扮一个对象?
java·开发语言·装饰器模式
日暮南城故里4 小时前
Java学习------源码解析之StringBuilder
java·开发语言·学习·源码
Vitalia4 小时前
从零开始学Rust:枚举(enum)与模式匹配核心机制
开发语言·后端·rust