这是一个广泛的问题。
当我发现自己必须编写越来越长的脚本时,我发现我的本能是将所有内容分解为小型函数;然而,这最终导致函数调用函数调用函数调用函数……我想知道我是否完全以错误的方式思考这个问题。
删节脚本可能如下所示。抱歉,这有点做作。
def simple_task_1():
return
def simple_task_2():
return
def simple_task_3():
return
def simple_task_4():
return
def complex_task_1():
simple_task_2()
simple_task_3()
simple_task_4()
return
def startup():
simple_task_1()
complex_task_1()
simple_task_4()
def finish():
# other function calls
return
def main():
startup()
finish()
那么,这是使用函数的正确方法吗?是否有一个客观点可以说您在彼此内部进行了太多函数调用?我是否应该为只完成一次的任务创建函数?
Python 有“递归”限制。如果你达到了这个标准,那么你可能使用了太多的函数,否则这可能没什么大不了的——通常,如果你递归地调用一个函数,你只能达到递归限制(然后usually因为你做错了什么并且在应该打破的时候没有打破)。
功能的重点是让您的生活更轻松。如果你发现你有太多的功能并且实际上并没有让你的生活变得更轻松,那么这可能是一个问题。例如:
def add(x,y):
return x+y
这是一个毫无意义的函数,但是,如果您愿意,最好避免它sinc
:
def sinc(x):
return math.sin(x)/x
这实际上可能很有用,因为新函数名称比其中执行的代码更具描述性。另外,稍后如果您发现需要删除 x=0 处的奇点,您可以将其添加到sinc
easily.
最终,可读性才是最重要的。如果使用函数使您的代码更易于阅读,那么它可能是值得的(即使您只从一个地方调用它并且可以轻松内联它)。如果您确实关心性能,则存在一些灰色区域(函数的执行时间确实比内联代码长一点),但您不应该以此为借口来内联难以阅读的内容,除非您能够可靠地证明这是一个性能瓶颈。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)