这是一个广泛的问题.
当我发现自己必须编写更长更长的脚本时,我发现我的直觉是将所有东西都分解成一口大小的函数; 然而,这最终导致函数调用函数调用函数调用函数....我想知道我是否完全在想错误的方法.
这是删节脚本的样子.对不起,这是一种做作.
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()
Run Code Online (Sandbox Code Playgroud)
那么,这是使用函数的正确方法吗?有没有一个客观的观点,你可以说你在彼此内部进行了太多的函数调用?我是否应该为只完成一次的任务制作函数?
Python有一个"递归"限制.如果你点击它,那么你可能使用了太多的函数,否则它可能不是什么大问题 - 通常你只能在递归调用函数时达到递归限制(然后通常因为你做错了什么而且你什么时候没有打破).
功能的关键是让你的生活更轻松.如果你发现你的功能太多而你实际上并没有让你的生活变得更轻松,那么这可能就是一个问题.例如:
def add(x,y):
return x+y
Run Code Online (Sandbox Code Playgroud)
这是一个非常毫无意义的功能,但最好避免使用它,如果你想要sinc:
def sinc(x):
return math.sin(x)/x
Run Code Online (Sandbox Code Playgroud)
这可能实际上很有用,因为新函数名称比在其中执行的代码更具描述性.此外,稍后如果您发现需要在x = 0处删除奇点,则可以sinc轻松添加它.
最终,可读性才是最重要的.如果使用函数使代码更容易阅读,那么它可能是值得的(即使你只从一个地方调用它并且可以很容易地内联它).如果你真的关心性能有一些灰色区域(函数执行的时间比内联代码要长一些),但你不应该以此为借口内联难以阅读的内容,除非你能够可靠地演示这是一个性能瓶颈.
| 归档时间: |
|
| 查看次数: |
2173 次 |
| 最近记录: |