python 解决循环引用 cannot import partially initialized

在python项目中,通常我们要将功能划分为多个文件,

可能出现一些,各模块需要一些公共的值、实例,同时相互存在循环引用的问题。

这种循环引用在 静态语 中一般没有问题,python中无法正常运行。

本文指导明如何简单的解决这个问题。

出错信息为:cannot import name ‘xxx’ from partially initialized module ‘xxxx’ (most likely due to a circular import)

例如:
程序结构

项目:.
│  run.py  		  #项目主入口        
├─appdir
│   __init__.py
│   comm_base.py  #公共类和值
│   user_info.py  #用户信息表       
├─weixinpay
      config.py    #微信支付的公共值
      pay.py       #微信支付

健康的引用关系:

run.pay 可以import appdir.comm_base
        可以from appdir.comm_base import XXX
        可以import appdir.user_info
        可以from appdir.user_infoimport XXX

comm_base.py 不可以引用run,也不可以引用user_info等

user_info.py可以import appdir.comm_bse,不能引用run
user_info.py可以from appdir.comm_bse import XXX  不能引用run
user_info.py可以import weixinpay.pay

猜你喜欢

转载自blog.csdn.net/wu_zhiyuan/article/details/126506325
今日推荐