python循环引用解决 cannot import partially initialize

文章目录

      • 1. 问题
      • 2. 程序结构
      • 3. 健康的引用关系

1. 问题

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

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

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

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

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

2. 程序结构

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

3. 健康的引用关系

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

commbase.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

你可能感兴趣的:(Python,python,开发语言)