python中的循环模块依赖

2024-09-28 03:15:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个模块,baselib.数据库以及基本库应用程序. 在基本库应用程序,我有

import baselib.Database

APP = None
class BaseApplication():
    def __init__(dbClass = baselib.Database.GenericDb...):
        global APP
        this.dbClass = dbClass
        APP = this
        etc...

在baselib.数据库,我有

import baselib.Application

def getDB(dbClass = baselib.Application.APP.dbClass):
    etc...

class GenericDB():
    def __init__(self, args):
    etc...

问题是,当我导入其中任何一个模块时

AttributeError: 'module' object has no attribute (modulename)

这个问题似乎源于这样一个事实:在导入过程中会对默认参数进行求值;如果我将getDB替换为

def getDB(dbClass = None):
    dbClass = dbClass or baselib.Application.APP.dbClass

对另一个默认参数做同样的处理,一切正常。这是最好的/最具python风格的方法吗,还是我应该完全避免循环依赖并将两个模块合并到一个文件中?我真的很想把它们分开,因为我的代码库很大一部分依赖于它们。你知道吗


Tags: 模块importnone数据库app应用程序applicationinit

热门问题