python 循环引用的解决方法

news2025/8/3 21:58:56

目录

1、问题描述

2、原因

3、示例

4、解决办法


1、问题描述

编写python代码,运行中出现了:‘most likely due to a circular import ’  这样的报错。

2、原因

循环引用问题,即A引用了B,B又引用了A,造成循环引用的问题。

3、示例

 4、解决办法

1)延迟导入:即将 from xxx import yyy 放到函数或类的内部,从而使其作用域变成局部的。但是这样可能会对性能有些影响。

如下图将import TestA放到函数内部,问题得到解决:

2)直接导入模块名,通过模块调用其中的函数

将 from xxx import yyy 转换成 import xxx; xxx.yyy 的形式 。

修改为直接引入模块,在函数内通过 模块.函数 调用解决 :

 3)重新设计代码结构,将代码和并或者分离

方法1)和2)以上两种方式都是治标不治本的,只能说能够用,但是并不符合规范。

最好的办法应该是从代码布局入手,比如合并或分离循环引用的部分,合并就是将代码放到一个文件里面,自然就不用循环引用了分离的话就是将循环引用的部分放到第三个py文件中,这样也可以。

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

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

相关文章

ctp交易接口股票怎么查询历史数据?

针对于ctp交易接口股票历史数据的查询,其基本原理就是利用api接口开发子系统最终就是开发完成并暴露一个标准的HTTPAPI接口,并将接口注册和接入到API网关。API设计和开发的核心思想仍然应该是基于领域对象建模驱动,通过领域对象建模很好的实现…

激光数据去畸变

机器人在使用激光雷达时必然会遇到的一个问题就是激光雷达数据去畸变。为什么会产生畸变呢,这是因为激光雷达产生激光数据时如果机器人在运动,那么就会产生运动畸变。 在ros下使用激光雷达时,激光数据是相对于激光本体坐标系的。画个图看下会…

【无人机】基于SDRE对NPS II无人机进行点对点(调节)控制(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入

目录 文章目录 前言 第01关 数字型注入 1.源码分析 2. sqlmap渗透 总结 前言 iwebsec靶场的SQL注入关卡共13关SQL注入漏洞,覆盖了数字型注入、字符型注入、报错型盲注、布尔型盲注、时间型盲注以及各种过滤绕过的注入,外加上二次注入,…

Recommendation Fairness: From Static to Dynamic 阅读笔记

论文链接https://arxiv.org/abs/2109.03150v1 Section 1 引言 越来越多的推荐系统开始将推荐建模为一个马尔可夫决策过程,并使用强化学习来解决这个问题。从而推荐系统场景下的公平性研究便面临着一个从静态评价与一次性干预static evaluation and one-shot interv…

CSS3 动画

变形 transform 在CSS3中,动画效果包括3个部分:变形(transform)、过渡(transition)、动画(animation) translate()平移 transform: translateX(x);    /*沿x轴方向平移*/ tran…

(十)死信队列

死信队列1、概念2、死信产生的原因3、代码实现3.1. 流程图3.2. 消息TTL 过期3.3. 队列达到最大长度3.4. 消息被拒1、概念 某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有 后续的处理,就变成了死信,有死信自然就…

(九)RabbitMQ交换机(Exchange)

交换机Exchange1、交换机1.1. Exchanges 概念1.2. Exchanges 的类型1.3. 无名exchange(默认交换机)2、临时队列3、绑定(bindings)4、Fanout(发布/订阅)5、Direct exchange、6、Topics在这里插入图片描述1、…

学生HTML个人网页作业作品 基于HTML+CSS+JavaScript明星个人主页(15页)

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

0105 蓝桥杯真题08

/* * 中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理。 * 它的前几项是:0、2、4、8、12、18、24、32、40、50 ... * 其规律是:对偶数项,是序号平方再除2,奇数项,是序号…

【RT-Thread Studio更新】英飞凌 PSOC62-IFX-PROTO-KIT 开发环境搭建指南

本文将介绍在 RT-Thread Studio 上如何基于 PSOC62-IFX-PROTO-KIT 开发板搭建开发环境进行开发、烧录、调试功能。开发环境搭建步骤1、PSOC62-IFX-PROTO-KIT 开发板资源包安装打开Studio,点击工具栏上的SDK管理器在Board_Support_Packages 找到 Infineon 下的 PSOC6…

TOWER 成就徽章 NFT 系列介绍——TOWER 生态系统的第一个灵魂通证(SBT)

2022 年 7 月,团队推出了成就徽章 NFT 系列,记录每个成员在 TOWER 生态系统中的努力。这是第一个不可转让的灵魂 NFT 系列(SBT),代表了每个玩家的独特身份。 关于灵魂通证(SBT) 以太坊联合创始人…

力扣(LeetCode)809. 情感丰富的文字(C++)

模拟 分析单词可扩张条件 : 对于某个字母&#xff0c;设目标字母长度 c1c1c1 &#xff0c;待扩张字母长度 c2c2c2 当 c1<c2c1<c2c1<c2&#xff0c;目标字母比待扩张字母少&#xff0c;false 当 c1≥c2c1\ge c2c1≥c2&#xff0c;目标字母比待扩张字母多或者相等&…

大数据开发——Hive实战案例

文章目录1. 创建表结构1.1 视频表结构1.2 用户表结构2. 准备工作2.1 创建临时表2.2 创建最终使用表2.3 对创建表进行解读3. 业务分析1. 创建表结构 1.1 视频表结构 1.2 用户表结构 2. 准备工作 2.1 创建临时表 由于使用的是orc方式进行存储&#xff0c;所以我们需要建立一个…

OpenFlow协议原理及基本配置-网络测试仪实操

一、OpenFlow协议原理 1.OpenFlow技术背景 ●转发和控制分离是SDN网络的本质特点之一。在SDN网络架构中&#xff0c;控制平面与转发平面分离&#xff0c;网络的管理和状态在逻辑上集中到一起&#xff0c;底层的网络基础从应用中独立出来&#xff0c;由此&#xff0c;网络获得…

不知道照片上怎么文字翻译成英文?来看看这篇文章

不知道你们在遇到看不懂的英文图片时&#xff0c;是不是和以前的我一样&#xff0c;一个一个的把图片内容输到翻译软件里&#xff0c;然后再进行翻译&#xff0c;其实这种办法不仅费时还费力&#xff0c;而且一旦遇到其它的外文就彻底没辙了&#xff0c;那怎么办呢&#xff1f;…

[附源码]java毕业设计音乐交流平台

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

我做数画ai绘画教程日赚过千,良心分享给想兼职赚钱的人

ai绘画能实现日赚过千&#xff0c;你信吗&#xff1f; 现在什么是风口&#xff1f;当然是ai绘画。而AI绘画里&#xff0c;什么最受欢迎&#xff0c;不用说&#xff0c;自然是二次元。 然后&#xff0c;很多人一拥而上&#xff0c;都去拍自己的二次元照片&#xff0c;然后在各…

10000m3d城镇生活污水处理工艺设计

目 录 1前 言 1 1.1 设计任务 2 1.2 设计目的 2 1.3 设计要求 2 1.4设计的数据以及资料 2 1.5 处理程度的计算 3 2 总体设计 5 2.1工艺比较的选择 5 2.2设计流量 8 2.2.1 设计规模 8 2.2.2 设计最大流量 8 2.3 格栅的设计计算 8 2.3.1格栅的作用及种类 8 2.3.2格栅的设计原则 8…

Linux系统编程(一)——环境搭建

准备写系统的总结Linux系统的一些知识以及Linux系统编程。这一篇先讲Linux搭建常用的开发环境。 目录 0x01 Linux开发环境搭建 一、远程链接操作 0x02 GCC 一、安装 二、了解GCC 0x03 静态库的制作及使用 一、库的介绍 二、静态库 0x04 动态库的制作和使用 一、配置…