[英]Where to import modules
可以说我有一个名为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的代码中,如下所示:
import device
import comports
...
device.ConfigureDevice(comports.ComPorts.COM_1)
通常,应该始终将import
放在模块程序员希望在其中找到的模块的顶部,因为这样任何导入错误都将在程序启动时立即发生,而不是在最后调用函数时发生。 我们通常只将import
放在函数内部,因为(a)我们试图避免设计不良的模块之间的笨拙的导入循环,或者(b)因为我们要使第3方库成为可选,以便仅在您需要时才需要它调用该函数。
更新:感谢您的代码示例! 除了我最初的建议外, import
始终位于文件的顶部,我现在可以另外建议您从设备模块中删除comport
的导入,因为从我所看到的情况来看,您永远不会在此处使用该模块–我不会请在设备模块代码中的任何位置查看名称comport
。 通常,如果您尝试从文件中删除import
语句,但程序仍在运行,则该语句首先不属于该语句。 pyflakes程序可以帮助您找到在代码演变时不再有用的import
语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.