Python学习之路——模块

一、什么是模块

python模块(Module)是一个Python文件,以.py结尾。模块能定义函数变量,模块里也能包含可执行的代码。

二、模块的作用

Python中有很多各种不同的模块,每一个模块都可以帮助我们实现一些功能,比如实现和时间相关的功能就可以使用time模块,我们可以认为一个模块就是一个工具包,每一个工具包中都有各种不同的工具供我们使用,进而实现不同的功能。

三、导入Python内置的模块

模块在使用前需要先导入

模块的导入方式

[from 模块名] import [模块 | 类 | 变量 | 函数 | *] [as 别名]

  1. import 模块名
  2. from 模块名 import 功能名 (类、函数、变量等)
  3. from 模块名 import *
  4. import 模块名 as 别名
  5. from 模块名 import 功能名 as 别名

下面一一进行演示

(一)import 模块名

# 导入时间模块
import timeprint('让程序进入睡眠状态,开始')
time.sleep(1)
print('睡眠状态结束')

(二)from 模块名 import 功能名 (类、函数、变量等)

# 导入时间模块中的sleep方法
from time import sleepprint('程序睡眠开始')
sleep(1)
print('程序睡眠结束')

(三)from 模块名 import *

# 利用 * 可以将模块内部的全部函数全部导入进来
from time import *
# 获取时间戳
print(time())
# 程序睡眠
sleep(1)

(四)import 模块名 as 别名

# 比较有意思的玩法
import time as tmtm.sleep(1)
print(tm.time())

(五)from 模块名 import 功能名 as 别名

# 给模块的方法起别名
from time import sleep as s
print('1')
s(1)
print('1')

四、自定义模块的使用

1、注意

当导入多个模块的时候,且模块内有同名函数,当调用这个同名函数的时候,调用到的是后面导入的模块的函数

2、演示

(一)创建如下三个文件

(二)test01内部写入以下代码:

def func(a, b):c = a + bprint(f'我是test01模块内的函数\n运算的结果为:{c}')

(三)test02内部写入以下代码:

def func(a, b):c = a * bprint(f'我是test02模块内的函数\n运算的结果为:{c}')

(四)在main函数内部写入以下代码:

from test01 import func
from test02 import funcif __name__ == '__main__':func(10, 20)

(五)运行结果:

很明显意料之中!!

3、另外

之前一直使用的

if __name__ == '__main__':

解释一下:

只有当程序是直接执行的才会进入if内部,如果是被导入的(即在另外一个文件里面调用该文件),则if无法进入

4、__all__

如果一个模块文件中有__all__变量,当使用from xxx import *导入时,只能导入这个列表中的元素

(一)利用上面创建的两个test文件和main进行演示

在test01文件中写入以下代码:

__all__ = ['func01']def func01(a, b):c = a + bprint(f'我是将两个变量进行相加的函数\n运算的结果为:{c}')def func02(a, b):c = a * bprint(f'我是将两个变量进行相乘的函数\n运算的结果为:{c}')

那么在main函数中就只能写入以下代码:

from test01 import func01if __name__ == '__main__':func01(10, 20)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/417902.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot项目中简单使用虚拟机Redis

目录 步骤大致如下: 一.在pom文件中加入redis依赖 二.在虚拟机上打开我们下载好的Redis。开启服务器端并获取虚拟机ip地址 三.在项目配置。 四:使用redis 测试 redis是一个以键值对存储的NoSQL。被数百万开发人员用作缓存、矢量数据库、文档数据库、…

电力能源实景三维可视化合集,智慧电网数字孪生

电力能源是现代社会发展和运行的基石,渗透于工业、商业、农业、家庭生活等方方面面,它为经济、生活质量、环境保护和社会发展提供了巨大的机会和潜力。图扑软件应用自研 HT for Web 强大的渲染引擎,助力现代化的电力能源数字孪生场景&#xf…

Pytest 测试框架与Allure 测试报告——Allure2测试报告-L3

目录: allure2报告中添加附件-图片 Allure2报告中添加附件Allure2报告中添加附件(图片)应用场景Allure2报告中添加附件(图片)-Python代码示例:allure2报告中添加附件-日志 Allure2报告中添加附件&#xff…

【JavaEE进阶】 SpringBoot配置⽂件

文章目录 🍀配置⽂件的作⽤🌴SpringBoot配置⽂件🎋配置⽂件的格式🎄properties配置⽂件🚩properties基本语法🚩读取配置⽂件🚩properties的缺点 🌳yml配置⽂件yml基本语法&#x1f6…

重学Java 10 面向对象

正是风雨欲来的时候,火却越烧越旺了 ——24.1.20 重点 1.为何使用面向对象思想编程 2.如何使用面向对象思想编程 3.何时使用面向对象思想编程 4.利用代码去描述世间万物的分类 5.在一个类中访问另外一个类中的成员 -> new对象 6.成员变量和局部变量的区别 一…

vue流程图

效果图 组件 <template><div class"processBox" v-if"list.length"><div class"childs"><div class"child" v-for"(item,index) in list" :key"item.id -child-index"><div class&q…

计算机导论06-人机交互

文章目录 人机交互基础人机交互概述人机交互及其发展人机交互方式人机界面 新型人机交互技术显示屏技术跟踪与识别&#xff08;技术&#xff09;脑-机接口 多媒体技术多媒体技术基础多媒体的概念多媒体技术及其特性多媒体技术的应用多媒体技术发展趋势 多媒体应用技术文字&…

Codeforces Round 803 (Div. 2) E. PermutationForces II(思维题 位置序列)

题目 给定长为n(n<2e5)的两个序列a和b&#xff0c; a为n的一个排列&#xff0c; b也为n的一个排列&#xff0c;但有一些位置被-1替换了&#xff0c;保证没被替换的位置在[1,n]之间且两两不同 你有一个距离最大限制s&#xff0c;你可以执行n次操作&#xff0c; 第i次操作…

详解Python web框架到底是怎么来的?

前言 咱都知道软件开发的架构有两种&#xff0c;分别是C/S架构与B/S架构&#xff0c;本质上都是借助socket实现网络通信&#xff0c;因此Django作为一个web框架本质上也是一个socket服务端&#xff0c;浏览器则是客户端&#xff0c;我们可以自己实现简易的web框架来更好的理解…

一篇文章讲透python双层独立循环(--附案例(python如何实现循环存放文件)

看过电视剧《开端》的都知道&#xff0c;处在循环中是多么让人崩溃的事情&#xff0c;循环可以制造问题&#xff0c;但循环同样可以解决问题。现在我们要讲的这个案例就是利用循环来实现的。 案例说明&#xff1a; 有一个excel文档&#xff0c;一列记录的是文件名&#xff0c;…

2.1.4-相关性分析

跳转到根目录&#xff1a;知行合一&#xff1a;投资篇 已完成&#xff1a; 1、投资&技术   1.1.1 投资-编程基础-numpy   1.1.2 投资-编程基础-pandas   1.2 金融数据处理   1.3 金融数据可视化 2、投资方法论   2.1.1 预期年化收益率   2.1.2 一个关于yaxb的…

高级架构师是如何设计一个系统的?

架构师如何设计系统&#xff1f; 系统拆分 通过DDD领域模型&#xff0c;对服务进行拆分&#xff0c;将一个系统拆分为多个子系统&#xff0c;做成SpringCloud的微服务。微服务设计时要尽可能做到少扇出&#xff0c;多扇入&#xff0c;根据服务器的承载&#xff0c;进行客户端负…