在不同的模块中分隔 类 会对性能产生影响吗?

does separating classes in diffrent modules have performance consequences?

将所有 类 放在一个模块中是否更好(假设它们以某种方式相关) 在性能方面? 因为 python 需要搜索模块并且可能将包导入每个模块需要时间?

即:

├──animals
   └── animals.py

animals.py:

import stuff

class dog: ...

class cat: ...

class fish: ...

src
├── animals
│   ├── __init__.py       
│   ├── dog.py
|   |── cat.py
|   |── fish.py
└── do_stuff_with_animals.py

do_stuff_with_animals.py:

from src.animals import dog ,cat ,fish

无论您的模块在哪里定义,一旦您进行了导入,其中包含所有定义的“模块对象”都会缓存在 sys.modules 下(来自文档 here

您将为每次导入“支付”一些费用(查找文件、解析文件并编译 python 代码、将代码加载到内存中,以及 运行 以供评估) , 但在一个长的 运行 程序中,这不应该是一个问题 - 一旦模块被加载,它就会被缓存并且模块导入时间通常可以忽略不计(假设模块只定义 类 而没有定义任何复杂的东西)。