【发布时间】:2021-05-06 10:03:27
【问题描述】:
这两个例子的性能有区别吗:
示例 1:
class Calculator:
def add(self, a, b):
return a+b
import Calculator
calc = Calculator()
print(calc.add(1, 2))
示例 2:
def add(a, b)
return a+b
from Calculator import add
print(add(1, 2))
使用类而不是导入函数我会遇到性能问题吗? 考虑多线程和多处理。
【问题讨论】:
-
决定使用函数或类不应该考虑性能(几乎所有时间)
-
我认为不会有;不会......你可以查看这个关于 Java 的问题(我知道你使用的是 python,但为什么不使用)-stackoverflow.com/questions/7128348/…
-
是的,有,但这不应该是驱动问题:将
add设为某个类中的方法是没有意义的——没有使用特定于实例的状态。另一方面,当您需要特定于实例的状态时,则不适合使用函数。哪个较慢几乎无关紧要。使用你需要的任何抽象,不要使用你不需要的任何抽象。 -
你也可以为函数写测试,所以我看不出这有什么关系。
-
无用和假设性代码的性能没有必要猜测。如果您关心性能,请确保衡量性能成为您开发习惯的一部分,就像测试是测试驱动开发的一部分一样。
标签: python multithreading performance python-multiprocessing