将变量“预导入”到modu中

2024-04-19 13:59:52 发布

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

这里是Python初学者,如果这个问题有一个简单的答案,我很抱歉。(希望如此。)

我正在开发一个python模块——一个用于更大程序的插件。我正在尝试使用eclipseide(使用pydev)开发这个模块,这意味着我需要能够独立运行这个模块,也就是说,不能作为更大程序的插件。你知道吗

实际上,我自己已经整理了很多细节,其中大部分涉及到创建一种“工具”,从我的IDE启动插件,以模拟(从插件的角度来看)从真实操作环境中启动插件。你知道吗

但有一件事我想不通。当模块从它的“真实”环境中运行时,不知何故它有一个特定的名称(称为“Bob”),这个名称已经在它的dir()结果中定义了。当我在自己的环境中运行它时,“Bob”不会出现在dir()中,除非我手动加载它。你知道吗

当然,如果我编写代码来手动加载“Bob”,这样插件就可以在我的IDE中工作,那么当插件“真正”运行时就会受到干扰。我需要的帮助是:如何让我的插件在“Bob”已经加载的情况下启动(通过启动工具)?

天真地说,我希望能够以某种方式“强制”插件以某种方式导入“Bob”,而不必在插件本身中添加“import Bob”。但我愿意接受更好的建议。。。?你知道吗


Tags: 模块工具答案程序名称插件dir方式
1条回答
网友
1楼 · 发布于 2024-04-19 13:59:52

可以推测,当您在Eclipse下“独立”运行它时(或者在没有Eclipse的情况下“独立”运行,就这一点而言,就像“python”一样)福巴.py在shell提示符下),您模块的__name__全局变量的值为'__main__'(如果模块被导入,则该全局变量的值将为'foobar',或者不管模块的名称如何)。你知道吗

所以,就这么做吧

if __name__ == '__main__':
    import Bob

当您的模块独立运行时,您可以导入Bob,而当您的模块被import编辑时,不会产生任何不良影响

相关问题 更多 >