导入模块的位置

2024-04-29 01:42:15 发布

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

假设我有一个名为device的模块,其中包含一个名为ConfigureDevice的类。让我们也假设我有一个名为comports的模块,它在一个名为comports的类中定义了我的com端口(C中的枚举)。在

现在,让我们假设ConfigureDevice的构造函数接受一个名为comPorts的参数。问题是,我应该在设备模块的开头导入组件,还是应该由创建ConfigureDevice的代码进行导入?在

在这里,

# device module
import serialwriter
import comports

class ConfigureDevice:
    def __init__(self, comPort):
        self.serialWriter = serialwriter.SerialWriter(comPort)

或者我应该在创建ConfigureDevice的代码中导入它,如下所示:

^{pr2}$

Tags: 模块端口代码importselfcom参数定义
1条回答
网友
1楼 · 发布于 2024-04-29 01:42:15

通常,您应该始终将import放在模块的顶部,Python程序员会在那里找到它,因为这样一来,任何导入错误都会在程序启动时发生,而不是在函数最终被调用时发生。我们通常只把import放在一个函数中,因为(a)我们试图避免在设计糟糕的模块之间出现尴尬的导入循环,或者(b)因为我们想让第三方库成为可选的,以便只有在调用该函数时才需要它。在

更新:感谢您提供代码示例!除了我最初的建议,即import总是放在文件的顶部,我现在可以另外建议您从您的设备模块中删除comport的导入,因为根据我所见,您永远不会在那里使用该模块—我在设备模块代码中的任何位置都看不到comport的名称。一般来说,如果尝试从文件中删除import语句,但程序仍在运行,则该语句首先不属于该文件。pyflakes程序可以帮助您找到随着代码的发展而不再有用的import语句。在

相关问题 更多 >