提问人:Edward Sarkisyan 提问时间:10/29/2023 最后编辑:petezurichEdward Sarkisyan 更新时间:10/29/2023 访问量:42
从插件更改应用程序中的全局变量
Change global variable in application from plugin
问:
我有一个 Python 应用程序和此应用程序的插件。谁能向我解释为什么从不通过插件更改?在我加载插件时。 必须将 value 更改为 ,但其输出为 。我做错了什么?global_var
main.py
importlib
decorator(func)
global_var
bar
global_var='foo'
提前非常感谢!
plugin.py
import main
@main.decorator
def init():
print('hello-from-bar-plugin')
main.global_var = 'hi' # <-- does not work (case 1) !
main.py
import sys
from pathlib import Path
from importlib import util as importer
global_var = 'foo'
plugin = None
def decorator(func):
global global_var
global_var = 'bar' # <-- does not work (case 2) !
return func
def load(name: str, file: Path):
spec = importer.spec_from_file_location(name, file)
module = importer.module_from_spec(spec)
sys.modules[name] = module
spec.loader.exec_module(module)
return module
if __name__ == '__main__':
plugin = load('plugin', Path('./plugin.py'))
plugin.init()
print(f'{global_var=}')
答: 暂无答案
评论