如何定义导入模块的函数

我正在尝试定义一个导入模块的函数并将该函数放在我自己的模块中,这样当我处理某种类型的项目时,我需要输入的是:


    import from user *

    setup()

    #setup is the function which imports the modules

但是,每当我尝试这个时,它根本不起作用。在我运行该函数后尝试调用 setup 中定义的模块只会导致错误提示未安装模块。


这是我模块中的代码:


    def setup():

        import keyboard, win32api, win32con

如果我可以提供更多信息,请告诉我,并感谢您的帮助。


至尊宝的传说
浏览 159回答 2
2回答

RISEBY

将名称显式导入到您需要它们的模块中通常是一个好主意,这样您就可以看到事物的来源。显式优于隐式。但是对于交互式会话,有时一次导入大量内容会很有用,所以...你的问题是你的setup方法将这些模块导入到它自己的命名空间中,这在函数之外是不可用的。但是你可以做一些更简单的事情。如果您的user模块只包含:import keyboard, win32api, win32con然后在您的交互式会话中,您可以执行以下操作:>>> from user import *然后,这些模块应该在您的会话命名空间中可用。

largeQ

我认为您遇到了范围问题,如果在其他模块中定义了设置,则导入将仅在该模块中有效(或者可能仅在需要测试的函数中)。一般来说,我认为“进口所有可能需要的东西”政策是错误的。你的代码应该只导入它真正需要的东西。依赖关系最好减少到最小和明确。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python