问个python循环引用的问题
A.py 里有 import c.1,c.2B.py 里也有 import c.1,c.2
当我在A里 import B 时就报错说我循环引用
但A和B又确实需要c.1,c.2
这该怎么写呢? 以及有什么快速查看py间引用结构的工具呢?
—— 来自 Xiaomi M2011K2C, Android 12上的 S1Next-鹅版 v2.5.4 from b import XXX 惰性加载 本帖最后由 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 本帖最后由 Tring 于 2022-10-12 21:09 编辑
gx19860411 发表于 2022-10-12 20:58
可现在是说B里面最后一行 c.c1=重复引用了…可在上面一个函数里 用c.c1就正常
—— 来自 Xiaomi M2011 ...
python下,给模块内的变量赋值,是一个非常非常纠结的问题。
甚至在不同cpython的小版本下,这个实现都是不同,细节也是不一样的。
因此极端不推荐这样使用,绝对不要给模块里的变量赋值。
你如果真的到了不得不用某一个静态变量传递内容的时候,也应该用某一个静态的dict或者list或者对象这类mutable变量,对其成员赋值,而非对变量本身赋值。
不过最推荐的做法还是用参数在模块之间传递信息。
页:
[1]