Python最佳实践:更好地使用嵌套函数或私有函数语法?

Python最佳实践:更好地使用嵌套函数或私有函数语法?,python,Python,我做了一个包,我按照Bob叔叔干净的代码书重构了这个包 结果是:我从以前的巨大函数中获得了大量较小的函数(因为我仍在学习Python和最佳实践) 我的问题是: 使事情井然有序…… 在不使用其他位置的函数上… 使用嵌套函数更好吗 def public_func(): def private_func(): # do abc private_func() # do xyz 或者有很多具有私有函数语法的较小函数 def _private_func():

我做了一个包,我按照Bob叔叔干净的代码书重构了这个包

结果是:我从以前的巨大函数中获得了大量较小的函数(因为我仍在学习Python和最佳实践)

我的问题是:

使事情井然有序……

在不使用其他位置的函数上…

使用嵌套函数更好吗

def public_func():
    def private_func():
        # do abc
    private_func()
    # do xyz
或者有很多具有私有函数语法的较小函数

def _private_func():
   # do abc

def public_func():
   _private_func()
   # do xyz
正如政府所说:

而且:

Simple is better than complex.
Complex is better than complicated.

因此,尽量不要使用嵌套,但如果它使其更复杂,请保持简单。

可能是后者,因为它不涉及每次调用
public\u func
时重新定义
private\u func
。如果嵌套函数关闭了
public\u func
的某些其他局部变量,则该函数非常有用。在IMO中,
嵌套的
函数看起来有点复杂。最好使用更小的函数。据我所知,没有Python实现可以执行,因此第一个版本会导致不可避免的运行时成本,而第二个版本则不会。只需提到“私有”这个词并不正确。根据这些函数的作用,最好将它们组织为类中的方法。如果该函数实际上只是作为另一个函数的实现细节,我将使用
\u name
。然而,我会仔细考虑这个函数是否在其他地方有用,即使您目前还没有这样做。此外,每一个函数调用都会增加总运行时的开销,所以请考虑是否真的需要私有函数,特别是如果它在循环中被调用。
Simple is better than complex.
Complex is better than complicated.