假设我有一个名为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}$
通常,您应该始终将
import
放在模块的顶部,Python程序员会在那里找到它,因为这样一来,任何导入错误都会在程序启动时发生,而不是在函数最终被调用时发生。我们通常只把import
放在一个函数中,因为(a)我们试图避免在设计糟糕的模块之间出现尴尬的导入循环,或者(b)因为我们想让第三方库成为可选的,以便只有在调用该函数时才需要它。在更新:感谢您提供代码示例!除了我最初的建议,即
import
总是放在文件的顶部,我现在可以另外建议您从您的设备模块中删除comport
的导入,因为根据我所见,您永远不会在那里使用该模块—我在设备模块代码中的任何位置都看不到comport
的名称。一般来说,如果尝试从文件中删除import
语句,但程序仍在运行,则该语句首先不属于该文件。pyflakes程序可以帮助您找到随着代码的发展而不再有用的import
语句。在相关问题 更多 >
编程相关推荐