一个Python文件被多个文件同时导入会怎么样?

news/2024/5/2 10:50:07/文章来源:https://blog.csdn.net/qq_40968179/article/details/127199869

我们在写代码时,往往会遇到一个Python文件被多个文件同时导入,如下例所示:

test1.py、test2.py和test3.py是3个Python文件。其中,test2.py导入了test1.py中的所有内容,test3.py导入了test1.py和test2.py中的所有内容。

然而,由于test2.py本身已经导入了test1.py中的内容,因此test3.py在导入test1.py和test2.py时,我们不禁会想:test1.py的内容会在test3.py中被多重导入和多次执行吗?

答案是不会的!在导入模块时,只要记住一点就好了,即无论一个模块被导入多少次,它只被加载一次,加载只在第一次导入时发生,这可以阻止多重导入时代码被多次执行。

具体可以参考本例结果,即虽然test3.py导入了test1.py,test3.py还导入了test2.py并且test2.py导入了test1.py,即test3.py直接和间接都导入了test1.py,但是运行结果表明,test3.py只导入了一次test1.py。

●代码如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

●将test1.py、test2.py和test3.py放在同一文件夹下,仅运行test3.py即可得到如下结果:
在这里插入图片描述

永远相信美好的事情即将发生~

欢迎大家关注我的小红书和抖音哦(昵称均为信小颜)~

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

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

相关文章

第 6 章 机器人仿真系统 1 —— 概述 + URDF 集成 Rviz 基本流程 urdf01_rviz

文章目录0 学习目标1 相关组件1.1 URDF —— 机器人建模1.2 Rviz —— 感知环境1.3 Gazebo —— 创建仿真环境2 课程说明3 URDF 集成 Rviz 基本流程3.1 创建功能包,导入依赖 —— 功能包 urdf01_rviz3.2 编写 URDF 文件 —— demo01_helloworld.urdf3.3 launch 文件…

读取文件报错:FileNotFoundError: [Errno 2] No such file or directory

文章目录问题描述问题分析解决办法问题描述 使用 img Image.open(data/DSC_8923.jpg) 读取一张图片时,报 FileNotFoundError: [Errno 2] No such file or directory: data/DSC_8923.jpg 的错误,如下图所示: 问题分析 很明显&#xff0c…

yolov5 原理解析

1、 网络结构 关于YOLOv5的网络结构其实网上相关的讲解已经有很多了。网络结构主要由以下几部分组成: Backbone: New CSP-Darknet53Neck: SPPF, New CSP-PANHead: YOLOv3 Head激活函数 通过和上篇博文讲的YOLOv4对比,其实YOLOv5在Backbone部分没太大变…

基础 | NIO - [0 复制]

INDEX1 0 复制1 0 复制演进1 示例1 0 复制 通常在进行 IO 操作时,涉及到 2 种复制 DMA 复制 不需要 CPU 参与,效率极高,但不可避免CPU 复制 就是 0 复制中需要消灭的复制,0 复制其实是指 0 CPU 复制 1 0 复制演进 BIO 用户态/…

如何自己设计一个定时任务分布式调度器

为什么要使用分布式调度器 分布式调度器主要应用于系统中一些任务定时调度处理。通常我们设计一个定时任务,最简单的就是直接使用scheduled注解配置好定时任务,这样开发工作也简单。但是也许会有一种情况,如果发生在生产环境上,需…

FPGA学习笔记(五)Testbench文件编写

这里写目录标题Testbench文件时间单位/精度测试模块输入信号初始化always 语句实现信号变化实例化系统函数Testbench文件 编写Testbench的目的是在Modsim中进行仿真验证,查看仿真波形和打印信息验证代码逻辑。 例如下面代码: timescale 1ns/1ns modul…

python数据容器---list

目录 1、列表的定义 1.1 基本语法 1.2 定义变量 1.3 定义空列表 2、列表的下标(索引) 2.1 基本语法 2.1.1 正向查找 2.1.2 方向查找 2.1.3 嵌套列表 3、列表的常用操作 3.1 查找某元素的下标 3.2 修改特定索引的值 3.3 插入追加元素 3.4 删…

基于java+jsp+ssm水果蔬菜销售系统

生活中,人们买水果或者蔬菜都是去菜市场买,因为那里是卖水果、蔬菜的聚集地。农商们把水果、蔬菜从远处运到那里,进行销售。但是这种销售方式的不足在于每次运输的数量是有限的,并且运输过程中也影响了水果、蔬菜的口感。随着生活节奏的加快,人们越来越注重高效的在线服务。在线…

让GPU跑的更快

作为一个cuda爱好者 一定要好好看看 不再让CPU和总线拖后腿:Exafunction让GPU跑的更快!确实只用cpu会卡的一比... 在云服务中使用 GPU 是获得低延迟深度学习推理服务最经济的方式。使用 GPU 的主要瓶颈之一是通过 PCIe 总线在 CPU 和 GPU 内存之间复制…

关卡一: ajax

【学习前提】 完成前端开发基础和JavaScript基础学习 【阶段说明】 Ajax这个术语源自描述从基于 Web 的应用到基于数据的应用。 Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。 使用 JavaScript 向服务器提出请求并处理响…

有被惊艳到 复刻一个大型互联网项目有多简单?大型网约车项目实战+东宝商城(附项目白皮书+核心源码)

从上图可以看出,面试准备其实可以分为两个部分:第一个部分是日常工作中对自己负责项目的抽象、提效、数据化表达;不断反思如何用技术的手段提升业务价值,就是我们日常常说的技术为业务赋能;第二个部分才是决定面试后 &…

第八章 CSP 架构 - CSP 网关配置

文章目录第八章 CSP 架构 - CSP 网关配置CSP 网关配置CSP 网关管理器定义服务器访问定义应用程序访问CSP 网关参数第八章 CSP 架构 - CSP 网关配置 CSP 网关配置 CSP 网关是安装在 Web 服务器上并由其加载的 DLL 或共享库。 CSP 网关检测对扩展名为 .csp 或 .cls 的文件的任何…

ApplicationRunner和CommandLineRunner的作用和区别

一、作用 ApplicationRunner和CommandLineRunner都用于在容器启动后(也就是SpringApplication.run()执行结束)执行某些逻辑。 可用于项目的一些准备工作,比如加载配置文件,加载执行流,定时任务等 二、共同点和区别 …

nodejs+vue+elementui学生成绩管理系统python/php/java445

前台首页功能模块 学生成绩管理系统设计;主要实现首页、优秀教师、优秀班主任、学校简介、教学课件、公告信息、优秀学生、试卷列表、新闻资讯、我的、跳转到后台,功能。 优秀教师,在优秀教师页面可以填写标题、教师工号、荣誉等详细&#xf…

经典论文研读:《F1:A Distributed SQL Database That Scales》

一 简介 F1是Google提出的分布式关系型数据库,支持便捷的水平伸缩。这篇论文是NewSQL分布式数据库架构的基石。论文首先定义了F1分布式数据库设计的关键方向: 可伸缩性:数据库要提供对业务透明的水平扩展能力,并支持数据迁移、数…

全同态加密(FHE)体系概述

同态加密定义 假设有这样一个场景,用户有一组私密数据,被加密存储在了第三方的云平台,现在,该用户想对这组数据进行某种处理,但是处理过程和结果都不想让第三方云平台看到。当然,用户可以选择将数据下载下…

ITU-T G.781解读(一)

引言 本系列是作者在学习ITU-T时做学习笔记之用,ITU-T的标准库是一个非常庞大的系列,尽管网络上有许多对标准的解读,但作者认为要想系统的掌握一个系列的知识,还是要自己看一遍原汁原味的原文。 时钟同步准则 同步信息通过同步…

【操作系统】第三章:内存管理

第三章:内存管理 OVERVIEW第三章:内存管理一、内存管理1.内存管理内容(1)地址转换:Point1:程序装入Point2:程序链接(2)内存保护:(3)内…

Linux命令:netstat【监控TCP/IP网络,可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息】【TCP的11种状态】

netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。 netstat [选项] 选项描述-a显示所有网络连接和监听的所有端口。-b显示创建每个连接或者监听商品的相关可执行程序。有时候有些已知的可执行…

参数传递和重定向

目录 1、参数传递 方法一 (1)修改路由配置, 主要是router下的index.js中的 path 属性中增加了 :id 这样的占位符 (2)视图层传递参数 (3)接收参数 (4)测试 方法二(…