我正在尝试在两个文件之间创建全局变量 这是相关代码的片段:
Logger.py
import globals
class Logger():
...
def log(self):
globals.sql.execute('..')
globals.py
import Logger
import SQL
logger=Logger.Logger()
sql=SQL.SQL()
跑步时我收到错误
AttributeError:'module'对象没有属性'sql'
on globals.sql.execute('..')
答案 0 :(得分:3)
您进行了循环导入Logger
导入globals
,导入Logger
。接下来,Logger.Logger()
行在sql=SQL.SQL()
行之前运行,因此后者尚不存在。
您的代码不完整,但如果您尝试使用Logger.__init__()
方法记录任何内容,则表示globals
模块尚未完成,您将收到属性错误。
您可以通过在创建sql = SQL.SQL()
实例之前移动Logger()
行来运行来解决此问题。但是,请考虑完全避免循环导入。
您可以将sql
对象传入记录器,以避免需要创建循环导入,例如。