我的应用程序读取 python 脚本:
a = MyObject("a")
b = MyObject("b")
my_objects = [a, b]
以下代码加载文件并获取my_objects
(省略解析错误的例外情况):
_config = __import__(file_name)
if hasattr(_config, "my_objects"):
v = getattr(_config, "my_objects")
它可以工作,但我希望 MyObject 在文件解析期间能够访问另一个对象。我发现的唯一方法是在单独的 python ( ) 文件中声明一个全局变量globs.py
以避免循环导入错误:
_cached_instance
然后我的对象的代码是:
import globs
class MyObject(Object):
def __init__(self):
self.cache_instance = globs._cached_instance
它有效......但不是很优雅。全局变量的使用使测试变得困难(并且具有奇怪的边界效应)。我正在寻找一种更优雅的方式来在加载 python 脚本期间“注入”_cached_instance 并使其仅在脚本中可用。有任何想法吗 ?