【python】模块与包

        Python中的模块和包是组织和管理代码的重要工具。通过模块和包,你可以更好地管理和重用你的代码,使得代码更加模块化和可维护。

目录

前言

正文

一、模块

        1、模块的分类

                1)内置模块

                        python解释器中默认拥有的模块可以直接使用(如:os、random)

                2)第三方模块

                3)自定义模块

        2、模块的使用

                1)import 模块名 as 别名

                        2)from 模块名 import 函数名 

                        3)两种方式的优劣

二、包

        1、创建一个包

        2、包的使用,和模块的导入是一样的

三、内置变量__name__

总结


前言

        在一个文件中为了实现某些功能代码将会越来越长,这样就会导致代码的维护性以及可读性较差。为了避免这种情况,我们可以将不同的函数(功能)进行分类,放在不同的文件里,这样每个文件的代码相对较少。更利于我们进行代码的管理。


正文

一、模块

        模块是一系列功能(函数)的集合体

        1、模块的分类

                1)内置模块
                        python解释器中默认拥有的模块可以直接使用(如:os、random)
                2)第三方模块

                        由其他大佬写好的模块,需要到网上下载(如:requests、pandas)

                        下载方式:在终端中输入命令pip install 模块名 -i [镜像源]

                3)自定义模块

                        自己写的模块,模块名称需要遵循标识符的规定

        2、模块的使用

        先导入模块同一个模块只需要导入一次,通常是把导入模块的代码放在文件的开头导入后,可以在程序的任意地方使用模块里的功能。导入一个模块时模块中的代码会被执行一遍。

                1)import 模块名 as 别名

                        该方式会导入模块中的所用功能,可以通过模块名调用该模块中的所有函数

                        作用:导入模块中的所有内容

                        别名:当模块名太长时,可以通过as来重命名

例:

模块login.py中的内容

# 这是一个用于检查用户名与密码是否正确的的模块
def Login():
    user = input('请输入用户名:')
    password = input('请输入密码:')
    if user == '写代码也摆烂':
        if password == '123':
            return True
    return False

# 用于输出登入是否成功
def Login_TF(buer):
    if buer:
        print('登入成功')
    else:
        print('用户名或密码错误')

 main.py中的内容

# 这里是主文件
# 使用import直接调用调用登入模块
import login
# 该方式会导入模块中的所用功能,可以通过模块名调用该模块中的所有函数

print('调用login.Login()的结果')

print(login.Login())

print('调用login.Login_TF(login.Login())的结果')

login.Login_TF(login.Login())

# 对模块名进行重命名
import login as lg

print('重命名后调用lg.Login()的结果')

print(lg.Login())

运行main.py结果:

                2)from 模块名 import 函数名 

                        该方法是是用于指定导入模块中的功能/变量

                        作用:导入模块中指定的功能

                3)两种方式的优劣

                                优:使用import导入可以直接使用模块中的所有函数较为方便,使用form导入可以针对性的导入自己需要使用的函数, 所需要占用的资源少

                                劣:import直接导入所用功能,会占用较多的资源且模块中大部分的函数不会被使用到。使用from导入如果需要使用较多的函数时会比较麻烦

二、包

        如果说模块是功能(函数的集合体),那么包就是模块的集合体,它的作业与模块类似,不过它是用来对模块进行分类的。

        1、创建一个包

                步骤:new--python package(包的命名遵守标识符的规定)

                一个包本质上是一个包含了一些模块和一个特殊的 __init__.py 文件的目录。、

                __init__.py :导包的时候会自动执行init文件里

        2、包的使用,和模块的导入是一样的

        语法:import 包名.模块名

                  from 包名 import 模块名

                  from 包名.模块名 import 函数名/变量名

三、内置变量__name__

         当 Python 解释器加载一个模块时,它会将该模块的名称赋值给 __name__ 变量。如果模块是主程序,Python 解释器会将 __name__ 设置为 "__main__";否则,如果模块是被导入的,__name__ 就是模块的名称。

作为主程序运行时:

 作为模块被引用时(导入一个模块时模块中的代码会被执行一遍):

         该变量常用于判断一个文件是被直接执行还是被导入到另一个文件中执行。通常用于测试模块中的功能是否能正常使用。

# 这是一个用于检查用户名与密码是否正确的的模块
def Login():
    user = input('请输入用户名:')
    password = input('请输入密码:')
    if user == '写代码也摆烂':
        if password == '123':
            return True
    return False


if __name__ == '__main__':
    # 判断该文件是否被直接执行,如果是则执行以下代码
    # 以下代码用于测试该文件中的函数是否能正常使用
    # 如果该文件被当作模块来调用则不会执行以下代码
    print(__name__)
    Login()

直接运行该文件(运行了if中的语句):

 

 调用该文件(没有执行if中的语句):


总结

       多个数据放在一起称为 列表、元组、字典、集合等

        多个语句放在一起完成一个功能,称为函数

        多个函数放在一起,称为模块

        多个模块放在一起,称为包

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣HOT100 - 70. 爬楼梯

解题思路&#xff1a; 动态规划 注意 if 判断和 for 循环 class Solution {public int climbStairs(int n) {if (n < 2) return n;int[] dp new int[n 1];dp[1] 1;dp[2] 2;for (int i 3; i < n; i) {dp[i] dp[i - 1] dp[i - 2];}return dp[n];} }

Maven 自动化构建

优质博文&#xff1a;IT-BLOG-CN 一、Maven&#xff1a;是一款服务于 Java平台的自动化构建工具 【1】Maven可以将一个项目按模块划分成不同的工程&#xff0c;利于分工协作; 【2】Maven可以将 jar包保存在自己的中央“仓库”中进行统一管理&#xff0c;有需要使用的工程引用这…

深入探究MySQL常用的存储引擎

前言 MySQL是一个广泛使用的开源关系型数据库管理系统&#xff0c;它支持多种存储引擎。存储引擎决定了MySQL数据库如何存储、检索和管理数据。不同的存储引擎具有不同的特点、性能表现和适用场景。选择适合的存储引擎对于优化数据库性能、确保数据完整性和安全性至关重要。本…

Pytorch基础:torch.cuda.set_device函数

相关阅读 Pytorch基础https://blog.csdn.net/weixin_45791458/category_12457644.html?spm1001.2014.3001.5482 torch.cuda.set_device函数用于设置当前使用的cuda设备&#xff0c;在当拥有多个可用的GPU且能被pytorch识别的cuda设备情况下&#xff08;环境变量CUDA_VISIBLE_…

全域运营是割韭菜吗?看完再下结论!

随着流量时代的到来&#xff0c;各大公私域平台中的流量争夺战日益激烈&#xff0c;商家和品牌实现流量变现的难度值也不断提高&#xff0c;运营人员的压力也逐渐增大。在此背景下&#xff0c;全域运营的兴起或许是一个契机&#xff0c;能够将所有人从内卷的状态中解救出来。而…

深度解析循环购模式:让消费更有价值

大家好&#xff0c;我是吴军&#xff0c;今天我非常高兴能和大家分享一个充满活力和创新的商业模式——循环购模式。可能大家都听过消费达到一定金额就有现金返还的活动&#xff0c;但这种返还通常都伴随着各种条件和限制。而循环购模式&#xff0c;它不仅仅是一个简单的返利机…

三丰云免费虚拟主机与免费云服务器评测

三丰云是一家知名的云计算服务提供商&#xff0c;提供免费虚拟主机和免费云服务器的服务。今天我们就来为大家介绍一下三丰云的免费虚拟主机和免费云服务器的使用体验。首先&#xff0c;让我们来看看三丰云的免费虚拟主机服务。三丰云的免费虚拟主机提供了稳定可靠的空间和带宽…

电子学会C/C++编程等级考试2024年03月(八级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:道路 N个以 1 … N 标号的城市通过单向的道路相连:。每条道路包含两个参数:道路的长度和需要为该路付的通行费(以金币的数目来表示) Bob and Alice 过去住在城市 1.在注意到Alice在他们过去喜欢玩的纸牌游戏中作弊后,Bob和她分手…

美股开户,你需要知道这些!

想投资美股&#xff0c;却不知道开户需要多少钱&#xff1f; 别担心&#xff0c;这篇专栏将告诉你美股开户的资金要求以及相关注意事项。 1. 美股开户需要多少钱&#xff1f; 答案是&#xff1a;有的&#xff0c;但门槛并不高。不同平台对开户资金的要求有所不同&#xff0c;一…

Java JVM 浅析

为什么要有JVMJVM是什么&#xff1f;JVM的工作流程和组成部分JVM规范和JVM实现JVM原理详解 带着以上问题&#xff0c;我将尝试对JVM作出一些简单的介绍。 一、JVM 简介 在90年代初&#xff0c;软件开发面临一个大问题&#xff0c;即不同的操作系统和硬件架构要求开发不同的版本…

etcd集群恢复、单节点恢复操作手册

一、集群备份 备份方式&#xff1a;Jenkins触发每小时的定时任务&#xff0c;通过调取ansible的playbook进行etcd集群的数据备份和上传&#xff0c;默认只备份集群中的非leader成员&#xff0c;避免leader成员压力过大。将备份数据上传到对应的公有云对象存储&#xff0c;分别…

Flink 算子

Flink 算子 用户通过算子能将一个或多个 DataStream 转换成新的 DataStream&#xff0c;在应用程序中可以将多个数据转换算子合并成一个复杂的数据流拓扑。 这部分内容将描述 Flink DataStream API 中基本的数据转换 API&#xff0c;数据转换后各种数据分区方式&#xff0c;以…

Excel 两层分类后的行转列

例题描述 Excel 文件中有下图所示的数据&#xff0c;同 Name 的物品可能有多种颜色。 现在想要把数据列出下图的形式&#xff0c;每种Type一行&#xff0c;其后依次列出每种Name及其Color。 实现方法 使用 Excel 插件 SPL XLL 在空白单元格写入公式&#xff1a; spl("…

阿里云短信提示被攻击怎么解决!!

你是否收到过这样的短信&#xff0c;【阿里云】尊敬的用户&#xff1a;您的IP: 实例名称&#xff1a; 受到攻击流量已超过云盾DDoS基础防护的带宽峰值&#xff0c;服务器的所有访问已被屏蔽&#xff0c;如果35分钟后攻击停止将自动解除否则会延期解除。详情请登录云盾控制台DDo…

5.12学习总结

一.JAVA聊天室项目 文件发送 使用 Java Socket 实现聊天内容或文件的传输的原理如下&#xff1a; 服务器端启动&#xff1a;聊天室的服务器端在指定的端口上监听客户端的连接。它创建一个 ServerSocket 对象&#xff0c;并通过调用 accept() 方法等待客户端的连接请求。客户…

LSTM计算指示图

掌握网络结构组件构成 输入门、遗忘门、输出门候选记忆细胞记忆细胞隐藏状态ref&#xff1a;6.8. 长短期记忆&#xff08;LSTM&#xff09; — 《动手学深度学习》 文档 (gluon.ai)

《深入浅出LLM基础篇》(四):主流大模型介绍

&#x1f389;AI学习星球推荐&#xff1a; GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学习资料&#xff0c;配有全面而有深度的专栏内容&#xff0c;包括不限于 前沿论文解读、…

冯喜运:5.13黄金晚间还会跌吗?原油还会涨吗?

【黄金消息面分析】&#xff1a;自5月初以来&#xff0c;黄金和白银一直在享受需求的回归&#xff0c;买家在过去几天加大了力度&#xff0c;一度推动金价重返2370美元上方&#xff0c;白银重返28.5美元上方。不过&#xff0c;经过几天的盘整后&#xff0c;黄金白银价格双双下跌…

限流算法(令牌桶漏桶计数器)

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;Spring⛺️稳中求进&#xff0c;晒太阳 业务重的三种情况&#xff1a;突发流量、恶意流量、业务本身需要 限流: 是为了保护自身系统和下游系统不被高并发流量冲垮&#xff0c;导致系统雪崩…

AI智剪轻松学:一键操作技巧,批量视频剪辑不求人

随着科技的飞速发展&#xff0c;人工智能已经渗透到我们生活的方方面面&#xff0c;其中AI在视频剪辑领域的应用更是为众多创作者带来了福音。AI智剪技术&#xff0c;以其高效、便捷的特点&#xff0c;正在逐步改变着传统视频剪辑的方式。今天&#xff0c;我们就来探讨一下如何…