python 查找特定文件的全局变量而不导入它

python find global variables of specific file without importing it

我正在制作一个模块文件,我需要获取正在使用它的文件的全局变量。 我试过导入它,然后获取它的全局变量,但这让我得到了这个错误:

Traceback (most recent call last):
  File "C:\Users\isaac\OneDrive\Coding\python\logger\file.py", line 1, in <module>
    import logger
  File "C:\Users\isaac\OneDrive\Coding\python\logger\logger.py", line 3, in <module>
    import file as bla
  File "C:\Users\isaac\OneDrive\Coding\python\logger\file.py", line 3, in <module>
    log = logger.Logger('logfile', 'file')
AttributeError: partially initialized module 'logger' has no attribute 'Logger' (most likely due to a circular import)

有没有办法用 open(...) 或类似的方法获取全局变量?

有两种解决方法。一种是从 file 中取出全局变量并将它们移动到第三个文件,比如 globals.py ,这两个文件都可以导入。

关于通过打开文件访问全局变量,你可以尝试自己解析文件,或者确实使用AST之类的东西。我认为上述技术足以满足您的用例。