Multiple classes in a single python file with different dependencies
如果在一个python文件中有多个类,是否可以在这些类中独立地导入模块或库?
我发现不像Python,Python没有样式指南,它建议在单个文件中分离类。即使是python模块也有多个类;例如,
在我的场景中,我有一个名为
1 2 3 4 5 6 7 8 9 10 | class Animal: pass class Speaker: def __init__(self): import pyttsx3 self.engine = pyttsx3.init() def speak(self, text): self.engine.say(text) self.engine.runAndWait() |
其他一些程序员建议我不要在函数中导入模块。他们说,每次调用函数时,它都会执行import语句。
我不知道怎么做。除了主要问题外,在这种情况下,要遵循的最佳实践是什么?
import语句通常应该在python文件的顶部(约定)。根据惯例,您应该将具有相似意图和需求的类分组在一个文件中。导入库时,文件中的所有类都可以使用它们。如果一个certaing类不需要类似的导入,或者需要导入很多其他类不需要的库,那么从技术上讲,它应该在不同的文件中,并且可以导入和实例化该文件。
函数中的import语句不会造成任何伤害(如果重复运行,除了非常短的延迟时间),但是,正如@evert所说,如果它们失败,可能会给用户体验带来痛苦。