__init__.py __all__和 __name__的作用及其用法

    __ init__.py 的作用及其用法: 包下的__init__.py 所在目录是一个模块包,本身也是一个模块,可用于定义模糊导入时要导入的内容。当我们导入一个包的时候,包下的__init__.py中的代码会自动执行,因此在某些大的项目被使用频率较高的模块,我们也可以用于批量导入模块。


    首先创建一个名为 package5的包,这个包的__init__.py 也自动生成,再创建 init_test.py。 创建子包 package_init, 同样这个包的__init__.py 也自动生成,最后创建 init_demo1.py 和 init_demo2.py



在这里插入图片描述



    分别给 init_demo1.py 和 init_demo2.py 随意加一个str



在这里插入图片描述



在这里插入图片描述



    当在 init_test.py 中 执行模糊导入 from package5.package_init import * 后,打印 init_demo1 的 str1 和 init_demo2 的 str2 变量时,都会出现报错



在这里插入图片描述



在这里插入图片描述



    可以在 package_init 包下的__init__.py 添加 __ all__ = [‘init_demo1’,‘init_demo2’],
__ all__ 的作用稍后下面会继续说明



在这里插入图片描述



    再次执行 init_test.py, 能正常打印出 2个变量值



在这里插入图片描述



    当导入包时,自动执行 __init __.py 里面的代码



在这里插入图片描述



在这里插入图片描述



    批量导入模块, 假设有3个常用的模块,可以添加到 __ init __.py



在这里插入图片描述



    导入 package_init,相当于已经自动导入以上3个模块



在这里插入图片描述



    __all__的作用及其用法 :上面已经演示了在包下的 __init __.py, 可用于标识模糊导入时的模块。


    在普通模块中使用时,表示一个模块中允许哪些属性可以被导入到别的模块中,在 all_demo1.py 中添加3个变量,以及 标明 __ all__ = [‘str1’,‘str2’], 表示只允许 str1,str2 变量被导入



在这里插入图片描述



    可见,当模糊导入模块时, str3 变量值是不能被打印出来的



在这里插入图片描述



    如果需要打印出 str3 变量,需要导入模块时指明



在这里插入图片描述



    __name__的作用及其用法: __name__这个系统变量显示了当前模块执行过程中的名称,如果当前程序运行在这个模块中, __ name __ 的名称就是__main __ 如果不是,则为这个模块的名称。__main__一般作为函数的入口, 也称主程序入口



在这里插入图片描述



    当 all_demo1.py 作为模块被导入时,结果为该模块名



在这里插入图片描述

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

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

相关文章

曹操出行借助 ApsaraMQ for Kafka Serverless 提升效率,成本节省超 20%

本文整理于 2024 年云栖大会主题演讲《云消息队列 ApsaraMQ Serverless 演进》,杭州优行科技有限公司消息中间件负责人王智洋分享 ApsaraMQ for Kafka Serverless 助力曹操出行实现成本优化和效率提升的实践经验。 曹操出行:科技驱动共享出行未来 曹操…

《探索 HarmonyOS NEXT(5.0):开启构建模块化项目架构奇幻之旅 —— Tabs底部导航栏》

简介 通过学习HarmonyOS Next,实战项目WanAndroid 鸿蒙版,API接口均来自WanAndroid 开源接口,我们一起来做个App吧。 玩Android 开放API:https://www.wanandroid.com/blog/show/2 效果图 创建每个模块下的各个目录 1、feature…

LinkedList 分析

LinkedList 简介 LinkedList 是一个基于双向链表实现的集合类,经常被拿来和 ArrayList 做比较。关于 LinkedList 和ArrayList的详细对比,我们 Java 集合常见面试题总结(上)有详细介绍到。 双向链表 不过,我们在项目中一般是不会使用到 Link…

MybatisPlus入门(六)MybatisPlus-null值处理

一、MybatisPlus-null值处理 1.1)问题引入: 在查询中遇到如下情况,有部分筛选条件没有值,如商品价格有最大值和最小值,商品价格部分时候没有值。 1.2)解决办法: 步骤一:新建查询实…

基于树莓派的安保巡逻机器人--(一、快速人脸录入与精准人脸识别)

目录 零、前言 一、人脸检测 二、人脸识别 1、采集人脸 2、训练人脸识别模型 3、人脸识别应用 零、前言 随着智能安防需求的增长,基于人工智能和物联网的安保系统逐渐成为趋势。树莓派因其低成本、高扩展性等特点,成为很多AI项目的理想平台。本文将为大…

网络编程项目之UDP聊天室

项目要求 利用UDP协议,实现一套聊天室软件。服务器端记录客户端的地址,客户端发送消息后,服务器群发给各个客户端软件。 问题思考 客户端会不会知道其它客户端地址? UDP客户端不会直接互连,所以不会获知其它客户端地址…

Java-String类

字符串这个词我想同学们并不陌生,但Java语言中的字符串和我们之前所学习的C语言字符串,差别可谓是非常之大,因为在C语言当中,想要表示一个字符串,就只能使用字符数组或字符指针,但是这种" 对数据进行细…

大学生网上面试注意事项,试试白瓜面试

在数字化时代,大学生网上面试已成为求职过程中的一个关键环节。为了在这个虚拟舞台上留下深刻印象,以下是一些针对大学生网上面试的注意事项,同时,我们将探讨如何利用“白瓜面试”这一AI面试助手来提升你的面试表现。 大学生网上…

SpringBoot【实用篇】- 热部署

文章目录 目标:1.手动启动热部署2.自动启动热部署4.禁用热部署 目标: 手动启动热部署自动启动热部署热部署范围配置关闭热部署 1.手动启动热部署 当我们没有热部署的时候,我们必须在代码修改完后再重启程序,程序才会同步你修改的信息。如果我们想快速查…

【源码+文档】基于SpringBoot+Vue旅游网站系统【提供源码+答辩PPT+参考文档+项目部署】

作者简介:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容:🌟Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

ES(2)(仅供自己参考)

Java代码的索引库: package cn.itcast.hotel;import lombok.AccessLevel; import org.apache.http.HttpHost; import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest; import org.elasticsearch.client.RequestOptions; import org.elasticsea…

《ToDesk云电脑vs青椒云性能测试,谁更能实现游戏自由?》

ToDesk云电脑vs青椒云性能测试 【前言】【使用云电脑的意义】【实测软件】【性能参数对比】1. 硬件配置2.游戏兼容性3. 延迟、流畅度与画面清晰度4. 用户体验5. 价格对比6. 附加功能 【游戏性能测试】《游戏一 黑悟空》《游戏二 赛博朋克 2077》《游戏三 CS反恐精英》 【本文小…

HarmonyOS开发5.0 net 启动界面设置

第一步、创建我们界面 第二步, 在EntryAbility中配置启动页面,在entry/src/main/ets/entryability/EntryAbility.ets中配置启动页面 配置如下 至此大功告成

python--函数详解二

一、作用域: 一个标识符的可见范围,这就是标识符的作用域,一般说的是变量的作用域 1.1、全局作用域 运行结果 在整个程序运行环境中可见。可以被多个函数重复多次使用 1.2、局部作用域 运行结果 这里调用a,显示未定义&#xff…

Etsy又被封号了!这次我终于搞懂了原因...

你是否真的了解在Etsy开店有哪些红线不能踩?你是否真的知道Etsy被封号后如何解决?本文我将探讨Etsy账号被封的常见原因,以及卖家可以采取的应对策略,以期减轻对跨境业务的伤害程度,感兴趣的商家速速码住,不…

大舍传媒:海外发稿的卓越选择——老挝新闻网报道及海外媒体发布服务

大舍传媒:海外发稿的卓越选择——老挝新闻网报道及海外媒体发布服务 在当今全球化的时代,信息的传播速度和范围至关重要。对于企业、组织和个人而言,能够在海外媒体上发布稿件,实现有效的宣传和推广,无疑是提升知名度…

如何找到网上爆款内容,快速复制扩大品牌声量

社媒内容爆款复制是现代营销中的一个重要策略,它对于提升品牌声量、曝光度和知名度具有显著效果。 首先什么是爆款? 爆款内容指的是在社交媒体或其他在线平台上迅速获得大量关注、分享和讨论的内容。 准确、及时找到这部分品牌相关的爆款内容&#xf…

在元神操作系统启动时自动执行任务脚本

1. 背景 本文主要介绍让元神操作系统启动时自动执行任务脚本的方法,适用于无人化任务执行目的。将任务脚本及相关的应用程序准备好之后,把装有元神操作系统的U盘插入目标电脑,然后打开电脑电源就会自动完成所设置的任务。 2. 方法 &#x…

Pandas JSON学习

1.JSON简介 JSON(JavaScript Object Notation,JavaScript 对象表示法),是存储和交换文本信息的语法,类似 XML。JSON 比 XML 更小、更快,更易解析,Pandas 可以很方便的处理 JSON 数据。 [{"…

扫描电镜的超低温冷冻制样及传输技术(Cryo-SEM)

扫描电镜的超低温冷冻制样及传输技术(Cryo-SEM) 扫描电镜(Scanning Electron Microscope,简称SEM)是一种利用聚焦电子束扫描样品表面,通过检测二次电子或反射电子等信号来获取样品表面形貌信息的显微观察技术;然而&…