为了账号安全,请及时绑定邮箱和手机立即绑定

如何定义导入模块的函数

如何定义导入模块的函数

至尊宝的传说 2022-01-11 16:58:01
我正在尝试定义一个导入模块的函数并将该函数放在我自己的模块中,这样当我处理某种类型的项目时,我需要输入的是:    import from user *    setup()    #setup is the function which imports the modules但是,每当我尝试这个时,它根本不起作用。在我运行该函数后尝试调用 setup 中定义的模块只会导致错误提示未安装模块。这是我模块中的代码:    def setup():        import keyboard, win32api, win32con如果我可以提供更多信息,请告诉我,并感谢您的帮助。
查看完整描述

2 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

将名称显式导入到您需要它们的模块中通常是一个好主意,这样您就可以看到事物的来源。显式优于隐式。但是对于交互式会话,有时一次导入大量内容会很有用,所以...

你的问题是你的setup方法将这些模块导入到它自己的命名空间中,这在函数之外是不可用的。但是你可以做一些更简单的事情。如果您的user模块只包含:

import keyboard, win32api, win32con

然后在您的交互式会话中,您可以执行以下操作:

>>> from user import *

然后,这些模块应该在您的会话命名空间中可用。


查看完整回答
反对 回复 2022-01-11
?
largeQ

TA贡献2039条经验 获得超7个赞

我认为您遇到了范围问题,如果在其他模块中定义了设置,则导入将仅在该模块中有效(或者可能仅在需要测试的函数中)。

一般来说,我认为“进口所有可能需要的东西”政策是错误的。你的代码应该只导入它真正需要的东西。依赖关系最好减少到最小和明确。


查看完整回答
反对 回复 2022-01-11
  • 2 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信