一些基点:
- 由于其解释性质,Python方法调用是“昂贵的”。从理论上讲,如果您的代码足够简单,那么分解Python代码除了会提高可读性和重用性之外,还会带来负面影响(这对开发人员而言是一大收获,对用户而言却不是很多)。
- 单一责任原则(SRP)可使代码保持可读性,易于测试和维护。
- 该项目具有特殊的背景,我们需要可读的代码,测试和时间性能。
例如,像这样的调用多个方法(x4)的代码比随后的仅一个方法慢。
from operator import add
class Vector:
def __init__(self,list_of_3):
self.coordinates = list_of_3
def move(self,movement):
self.coordinates = list( map(add, self.coordinates, movement))
return self.coordinates
def revert(self):
self.coordinates = self.coordinates[::-1]
return self.coordinates
def get_coordinates(self):
return self.coordinates
## Operation with one vector
vec3 = Vector([1,2,3])
vec3.move([1,1,1])
vec3.revert()
vec3.get_coordinates()
与此相比:
from operator import add
def move_and_revert_and_return(vector,movement):
return list( map(add, vector, movement) )[::-1]
move_and_revert_and_return([1,2,3],[1,1,1])
如果我要并行处理类似的事情,那么客观上我会失去性能。注意,这只是一个例子;我的项目有几个带有数学运算的微型例程-尽管使用起来更容易,但我们的分析器却不喜欢它。
在不影响Python性能的情况下,我们如何以及在什么地方采用SRP,因为它的固有实现会对其产生直接影响?
是否有解决方法,例如某种可以将内容在线发布的预处理器?
还是Python完全不擅长处理代码故障?