Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中使用语句块与使用函数_Python_Performance_Function_Block - Fatal编程技术网

在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”添加到我的程序中,当我的程序结束时,它会在屏幕上显示运行时间?有关详细信息,请参阅。您最好只测试一个小片段。