Python中将类放在不同的文件中是否代价高昂?

Alw*_*oss 6 python performance python-2.7

我是一名Java程序员,我总是为Classes创建单独的文件,我正在尝试学习python,我想学习它.在Cthon中将Classes放在不同的文件中是否代价高昂,这意味着一个文件只包含一个类.我在博客中读到它很昂贵,因为.运算符的解析在运行时在python中发生(它发生在Java的编译时).

注意:我在其他帖子中读过,我们可以将它们放在单独的文件中,但是他们没有提到它们是否以任何方式更昂贵

Gar*_*tty 8

它的成本略高,但不是你可能会关心的程度.您可以通过以下方式否定这笔额外费用:

from module import Class
Run Code Online (Sandbox Code Playgroud)

然后,类将被分配给本地名称空间中的变量,这意味着它不必通过模块进行查找.

但实际上,这不太可能很重要.查找类似这样的东西的成本很小,你应该专注于做什么使你的代码最具可读性.跨模块和包拆分类对于您的程序来说是合乎逻辑的,因为它使它们保持清晰.

例如,如果您在循环中重复使用某些东西,这是程序的瓶颈,您可以将其分配给该循环的局部变量,例如:

import module

...

some_important_thing = module.some_important_thing

#Bottleneck loop
for item in items:
   #module.some_important_thing()
   some_important_thing()
Run Code Online (Sandbox Code Playgroud)

请注意,这种优化不太可能是重要的,您只应优化您需要证明的地方.

  • 我认为气馁是一个强有力的术语.一般情况下,最好正常导入,这样就不会混淆命名空间,是的.但是,在某些情况下,如果您在整个代码中使用了大量导入的内容,那么使用这种导入并没有错. (2认同)
  • @AlwinDoss正如我在帖子中所说 - 它并不是一个巨大的性能差异,因为无论如何查找发生得非常快.它也不是一个真正的功能,只是对Python中作为一流对象的所有内容的反响.您可以像处理任何事情一样将模块,函数和类分配给变量. (2认同)