Python基础07-模块

零、文章目录

Python基础07-模块

1、模块是什么

  • Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块能定义函数,类和变量,模块里也能包含可执行的代码。

2、模块的分类

  • 在Python中,模块通常可以分为两大类:内置模块(目前使用的) 和 自定义模块

3、模块的导入方式

(1)import模块名

基本语法:

import 模块名称
或
import 模块名称1, 模块名称2, ...

使用模块中封装好的方法:

模块名称.方法()

案例:使用import导入math模块

import math# 求数字9的平方根 = 3
print(math.sqrt(9))
(2)import 模块名 as 别名
  • 在有些情况下,如导入的模块名称过长,建议使用as关键字对其重命名操作,以后在调用这个模块时,我们就可以使用别名进行操作。
import time as t# 调用方式
t.sleep(10)
(3)from 模块名 import *
  • 提问:已经有了import导入模块,为什么还需要使用from 模块名 import 功能名这样的导入方式?

  • 答:import代表导入某个或多个模块中的所有功能,但是有些情况下,我们只希望使用这个模块下的某些方法,而不需要全部导入。这个时候就建议采用from 模块名 import 功能名

  • from 模块名 import * 导入这个导入方式代表导入这个模块的所有功能(等价于import 模块名)

(4)from 模块名 import 功能名(推荐)
'''
导入方式:
from 模块名称 import *                      代表导入这个模块中所有函数
from 模块名称 import 函数1, 函数2, 函数3      代表仅导入函数123调用方式:不需要模块名称,直接使用函数名称即可
'''
# from math import *
# 或
from math import sqrt, floor# 调用方式
print(sqrt(9))
print(floor(10.88))
(5)time模块中的time()方法
'''
time模块是一个与日期时间相关的模块,主要拥有这样两个方法
time.sleep(秒数) :休眠
time.time() :获取当前时间,返回的是一个数字,我们经常使用time.time()获取程序执行时间
'''
# 1、导入time模块
import time# 2、程序开始前,获取一个时间点
start = time.time()
# 定义一个列表
list1 = []
for i in range(10000000):list1.append(i)
# 3、当程序执行结束,获取一个时间点
end = time.time()print(f'以上程序执行一共消耗了{end - start}s时间!')

4、自定义模块是什么

  • 模块的本质:在Python中,模块的本质就是一个Python的独立文件(后缀名.py),里面可以包含全局变量、函数以及类。
  • 注:在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。也就是说自定义模块名必须要符合标识符命名规则。
  • 特别注意:我们在自定义模块时,模块名称不能为中文,不能以数字开头,另外我们自定义的模块名称不能和系统中自带的模块名称(如os、random)相冲突,否则系统模块的功能将无法使用。比如不能定义一个叫做os.py模块

5、自定义模块定义

  • 案例:在Python项目中创建一个自定义文件,如my_module1.py
# 封装一个函数sum_num(),专门对两个参数进行求和操作
def sum_num(num1, num2):print(num1 + num2)

6、导入自定义模块

'''
在Python代码中,只要涉及到模块的导入你都有两种导入方式:① import ② from
'''
# import my_module1
# 导入模块中已经封装好的sum_num()方法
# my_module1.sum_num(10, 20)from my_module1 import sum_num
# 调用方法
sum_num(10, 20)

8、测试模块代码

  • 在我们编写完自定义模块以后,最好在模块中对代码进行提前测试,以防止有任何异常。

  • 引入一个魔术变量:__name__,其保存的内容就是一个字符串。随着运行页面的不同,其返回结果也是不同的:

    • ① 如果__name__是在当前页面运行时,其返回结果为__main__
    • ② 如果__name__在第三方页面导入运行时,其返回结果为模块名称(文件名称)
  • 基于以上特性,我们可以把__name__编写在自定义模块中,其语法如下:

    if __name__ == '__main__':# 执行测试代码
    
  • 定义一个自定义模块my_module2.py

'''
在Python中,以__name__这样命名的变量都属于魔术变量,拥有特殊的含义!
__name__ :是一个特殊的变量,随着运行环境的不同(随着所运行位置的不同,返回结果也是不同的)
__name__返回的结果是一个字符串
① 如果在本页面直接输出__name__,其结果为'__main__'
② 如果在本页面中,存在一个__name__,然后把这个页面导入到其他文件时,则__name__返回结果就是本页面的文件名称,不等于__main__
'''
print(__name__)
# print(type(__name__))
#
if __name__ == '__main__':print('如果以上条件成立,代表我们正在当前页面中执行此代码')
  • 在自定义模块中直接运行,输出
如果以上条件成立,代表我们正在当前页面中执行此代码
  • 在外部引入此模块运行,输出
my_module2

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

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

相关文章

Netty常见的设计模式

简介 设计模式在软件开发中起着至关重要的作用,它们是解决常见问题的经过验证的解决方案。而Netty作为一个优秀的网络应用程序框架,同样也采用了许多设计模式来提供高性能和可扩展性。在本文中,我们将探讨Netty中使用的一些关键设计模式&…

云开发微信小程序实战

随着移动互联网的快速发展,微信小程序作为一种轻量级的应用程序,逐渐成为了企业开展业务和提升用户体验的重要工具。而云开发则为企业提供了高效、安全、可靠的后台服务,使得小程序的开发和维护更加便捷。本文将详细介绍如何使用微信小程序与…

返回零长度的数组或集合,而不是null

返回零长度的数组或集合而不是 null 是一种良好的编程实践,可以提高代码的可靠性和可读性。以下是一个例子,展示了返回零长度的数组或集合的情况: import java.util.ArrayList; import java.util.List;public class StudentManager {private…

JavaWeb期末复习题

文章目录 一、单选题二、多选题三、填空四、判断题无、简答题六、程序分析题 一、单选题 1、HTML代表?(C) A、HighText机器语言 B、超文本和链接标记语言 C、超文本标记语言 D、都不是 2、用于启动网页的HTML标签的正确顺序是&#xff1f…

牛客第一期

1.创建动态数组 #include <iostream> using namespace std;int main() {int n; cin>>n; int *pnew int [n]; int i0; for(i0;i<n;i) {*(pi)ni; } int j0; for(j0;j<n;j) {printf("%d ",*(pj)); } } #include<bits/stdc.h> using namespace s…

网站提示“不安全”

当你在浏览网站时&#xff0c;有时可能会遇到浏览器提示网站不安全的情况。这通常是由于网站缺乏SSL证书所致。那么&#xff0c;从SSL证书的角度出发&#xff0c;我们应该如何解决这个问题呢&#xff1f; 首先&#xff0c;让我们简单了解一下SSL证书。SSL证书是一种用于保护网站…

python实战教学之python版“张万森,好久不见”

前言 WINTER IS COMING 最近《一闪一闪亮星星》的电影在火热预售中&#xff0c;家人们抢到票了嘛&#xff0c;前两天小编写了一篇“张万森&#xff0c;下雪了”的文章后&#xff0c;收到了不少小伙伴的反馈&#xff1a;“代码的运行结果只有文字&#xff0c;没有雪花啊”&#…

OceanBase数据库部署

文章目录 OceanBase基础概念集群、Zone和OB ServerRootService总控服务&#xff08;RS&#xff09;多租户机制&#xff1a;资源隔离&#xff0c;数据隔离每个租户拥有若干资源池&#xff08;Resource Pool&#xff09; 部署形式部署流程OceanBase客户端工具 学习体验部署实现 O…

通过fu过 Function Calling 查询数据库

from openai import OpenAI import os import json from dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv()) # 读取本地 .env 文件&#xff0c;里面定义了 OPENAI_API_KE client OpenAI( api_keyos.getenv(“OPENAI_API_KEY”), base_urlos.getenv(“O…

unknown error 1146

Error 1146 in MySQL 是指找不到指定的数据库表。这个错误通常发生在你试图访问或操作一个不存在的数据库表时。 解决方式&#xff1a; 确保你使用的表名是正确的&#xff0c;检查拼写和大小写是否与数据库中的表名匹配。确保你正在使用正确的数据库。你可以使用以下命令切换到…

VSCode配置代码片段,提升效率必备!

1.点击文件—> 首选项------>配置用户代码片段 2、新建用户代码片段 3、以js的控制台输出为例 {//片段名称"console.log": {"prefix": "cls",//呼出命令"body": ["console.log($1)"//具体片段],"descriptio…

netty-daxin-3(rpc远程调用)

文章目录 nettyRpcObjectEncoder 与 ObjectDecoderjdk动态代理回顾Rpc调用过程简析服务端客户端 nettyRpc ObjectEncoder 与 ObjectDecoder ObjectEncoder继承自MessageToByteEncoder<Serializable>&#xff0c;它内部使用ByteBufOutputStream包装ByteBuf对象&#xff…

vue3项目中使用vue-cropper实现截图效果

前言&#xff1a; 自用&#xff01;&#xff01;&#xff01; 插件文档链接&#xff1a; https://www.npmjs.com/package/vue-cropper 使用步骤&#xff1a; 1、安装 npm install vue-cropper 2、项目中引入&#xff08;全局引入&#xff09;&#xff1b;文档中有介绍如何局…

怎么解决bash: composer: command not found问题

是不是遇到过bash: composer: command not found问题&#xff0c;怎么解决呢&#xff1f;下面由composer教程栏目给大家来详细介绍该问题的解决方法。 1、先看报错 2、由于错误的原因&#xff0c;安装很多东西都失败了。网上有的说是环境变量的问题&#xff0c;又一个个找也没…

DS考研真题总结——客观题(1)

开始整理真题中的客观小题&#xff0c;至于和算法有关的大题统一最后整理~ 定义背诵&#xff1a;数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下&#xff0c;精心选择的数据结构可以带来更高的运行或者存储效…

CAPL脚本获取电脑时间,并通过Message发送至总线

文章目录 前言一、CAPL获取时间的API1.timeNow():CANoe工程启动到执行到该函数的时间2.addTimeToMeasurementStartTime()3.void getLocalTime(long time[]):返回日期时间数组前言 在自动化开发中,无论是CAN通信测试,还是网络管理测试,亦或是休眠唤醒等等存在时间相关的,…

spring面试:二、bean的生命周期和循环引入问题(三级缓存、@Lazy)

bean的生命周期 Spring容器在进行实例化时&#xff0c;会将xml配置的的信息封装成一个BeanDefinition对象&#xff0c;Spring根据BeanDefinition来创建Bean对象&#xff0c;里面有很多的属性用来描述Bean。 其中比较重要的是&#xff1a; beanClassName&#xff1a;bean 的类…

tcp连接全过程各种状态详解

文章目录 TCP的一些重要特性tcp连接全过程各种状态参考资料 TCP的一些重要特性 TCP是一种可靠、面向连接、全双工、流控制、拥塞控制、有序传输、无差错传输、无重复传输、无丢失传输等特点的协议。为了实现这些特点&#xff0c;TCP必须对上层应用程序发送的数据进行分段、重组…

spring6 为集合类型属性赋值 --引用集合类型的bean

1.准备工作&#xff1a; Student.java package bean.dimap;import java.util.List; import java.util.Map;public class Student {private String sid;private String sname; //private Map<String,Teacher> map;//private List<Lesson> lessonList;public List&…

Flink系列之:SELECT WHERE clause

Flink系列之&#xff1a;SELECT & WHERE clause 一、SELECT & WHERE clause二、SELECT DISTINCT 适用于流、批 一、SELECT & WHERE clause SELECT 语句的一般语法是&#xff1a; SELECT select_list FROM table_expression [ WHERE boolean_expression ]table_e…