找回密码
 立即注册
搜索
查看: 1518|回复: 8

[软件] 问个python循环引用的问题

[复制链接]
     
发表于 2022-10-12 17:21 来自手机 | 显示全部楼层 |阅读模式
A.py 里有 import c.1,c.2
B.py 里也有 import c.1,c.2
当我在A里 import B 时就报错说我循环引用
但A和B又确实需要c.1,c.2
这该怎么写呢?
回复

使用道具 举报

     
 楼主| 发表于 2022-10-12 17:24 来自手机 | 显示全部楼层
以及有什么快速查看py间引用结构的工具呢?

—— 来自 Xiaomi M2011K2C, Android 12上的 S1Next-鹅版 v2.5.4
回复

使用道具 举报

     
发表于 2022-10-12 17:49 | 显示全部楼层
from b import XXX
回复

使用道具 举报

     
发表于 2022-10-12 18:41 | 显示全部楼层
惰性加载
回复

使用道具 举报

头像被屏蔽
     
发表于 2022-10-12 18:44 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
     
发表于 2022-10-12 20:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
 楼主| 发表于 2022-10-12 20:58 来自手机 | 显示全部楼层
本帖最后由 gx19860411 于 2022-10-12 20:59 编辑
nessaj 发表于 2022-10-12 20:24
你在A.py里import B之后已经可以使用B里的所有object和module了,包括B import的那些
所以你在A里并不需要i ...

可现在是说B里面最后一行 c.c1=  重复引用了…可在上面一个函数里 用c.c1就正常

—— 来自 Xiaomi M2011K2C, Android 12上的 S1Next-鹅版 v2.5.4
回复

使用道具 举报

头像被屏蔽
     
发表于 2022-10-12 21:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2022-10-12 21:04 | 显示全部楼层
本帖最后由 Tring 于 2022-10-12 21:09 编辑
gx19860411 发表于 2022-10-12 20:58
可现在是说B里面最后一行 c.c1=  重复引用了…可在上面一个函数里 用c.c1就正常

—— 来自 Xiaomi M2011 ...

python下,给模块内的变量赋值,是一个非常非常纠结的问题。
甚至在不同cpython的小版本下,这个实现都是不同,细节也是不一样的。

因此极端不推荐这样使用,绝对不要给模块里的变量赋值。

你如果真的到了不得不用某一个静态变量传递内容的时候,也应该用某一个静态的dict或者list或者对象这类mutable变量,对其成员赋值,而非对变量本身赋值。
不过最推荐的做法还是用参数在模块之间传递信息。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-9-22 07:42 , Processed in 0.092776 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表