在python中使用语句块与使用函数
哪一个在性能方面更好:在python中使用语句块与使用函数,python,performance,function,block,Python,Performance,Function,Block,哪一个在性能方面更好: def check(): if (statement1 and statement2 and statement3): return True else: return False def doIt(): if check(): perform() vs 不用麻烦了。前者更具可读性,请使用它,如果您的应用程序遇到性能问题,请分析代码。如果您确定这是问题所在,则可以内联函数调用 但是,一般来说
def check():
if (statement1 and
statement2 and
statement3):
return True
else:
return False
def doIt():
if check():
perform()
vs
不用麻烦了。前者更具可读性,请使用它,如果您的应用程序遇到性能问题,请分析代码。如果您确定这是问题所在,则可以内联函数调用
但是,一般来说,Python中函数调用的代价很高,因此如果在循环中调用
check
,会影响性能。即便如此,在一开始就将其内联可能不是一个好主意。不用麻烦了。前者更具可读性,请使用它,如果您的应用程序遇到性能问题,请分析代码。如果您确定这是问题所在,则可以内联函数调用
但是,一般来说,Python中函数调用的代价很高,因此如果在循环中调用check
,会影响性能。即便如此,在一开始就将其内联可能不是一个好主意。如果(且仅当)您有性能问题,您自己:
% python -m timeit -c '
statement1 = True
statement2 = True
statement3 = True
def perform():
pass
def check():
if (statement1 and
statement2 and
statement3):
return True
else:
return False
def doIt():
if check():
perform()
doIt()
'
1000000 loops, best of 3: 1.37 usec per loop
如果您没有性能问题,请遵循并记住。如果(且仅当)您有性能问题,您自己:
% python -m timeit -c '
statement1 = True
statement2 = True
statement3 = True
def perform():
pass
def check():
if (statement1 and
statement2 and
statement3):
return True
else:
return False
def doIt():
if check():
perform()
doIt()
'
1000000 loops, best of 3: 1.37 usec per loop
如果没有性能问题,请遵循并记住。仅从我的基本软件知识来看,我认为函数调用将花费额外的精力,然后直接在侧块中编码 通常,函数调用必须记录当前的编码指针,以便以后从函数调用返回
函数应该使您的代码更具可读性和可重用性。函数易于调试和维护。仅从我的基本软件知识来看,我认为函数调用将花费额外的精力,然后直接在侧块中编码 通常,函数调用必须记录当前的编码指针,以便以后从函数调用返回
函数应该使您的代码更具可读性和可重用性。函数易于调试和维护。您为什么不自己测量一下呢?@TadeuszA.Kadłubowski也许他不知道怎么做?您的评论肯定没有帮助。您可以这样执行检查功能:
def check():返回stat1、stat2和stat3
是的,我不知道如何测量它。你能告诉我怎么做吗?@shenshei你为什么认为这样更好?你为什么不测量一下自己?@TadeuszA.Kadłubowski也许他不知道怎么做?您的评论肯定没有帮助。您可以这样执行检查功能:def check():返回stat1、stat2和stat3
是的,我不知道如何测量它。你能告诉我怎么做吗?@shenshei为什么你认为这样更好?我如何将“timeit”添加到我的程序中,当我的程序结束时,它会在屏幕上显示结束时的运行时间?有关详细信息,请参阅。您最好只测试一个小片段。如何将“timeit”添加到我的程序中,当我的程序结束时,它会在屏幕上显示运行时间?有关详细信息,请参阅。您最好只测试一个小片段。