zoukankan      html  css  js  c++  java
  • python模块导入注意事项

    在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.py   可以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 import XXX

    原文地址:https://zhuanlan.zhihu.com/p/107024982

  • 相关阅读:
    面向报文(UDP)和面向字节流(TCP)的区别
    c++ 字符串和数字拼接
    OpenGL中着色器,渲染管线,光栅化
    阅读计划
    课堂测试
    多态与异常处理
    《大道至简》第七八章读后感
    继承与接口课堂作业
    《大道至简》第六章读后感
    随机数组
  • 原文地址:https://www.cnblogs.com/xwupiaomiao/p/15040671.html
Copyright © 2011-2022 走看看