Python代码/函数布局

标签 python

我正在学习 Python,并试图找出构建代码的最佳方式。

假设我有一个很长的函数,想把它分解成更小的函数。在 C 中,我会将其设为顶层的“静态”函数(因为这是唯一的函数层)。我也可能会转发声明它并将它放在使用它的现在缩短的函数之后。

现在是 Python。在 Python 中,我可以选择创建嵌套函数。由于这个新的“内部”函数实际上只是为了可读性目的而断开的较大函数的一部分,并且仅由它使用,所以听起来它应该是一个嵌套函数,但是将这个函数放在父函数中会导致整个函数仍然很长,因为实际上没有代码被移出!特别是因为函数在调用之前必须完全编码,这意味着实际的短函数一直在这个伪长函数的末尾向下,使得可读性很糟糕!

对于这种情况,什么是好的做法?

最佳答案

如何将较小的函数放在一个自己的文件中并将其导入到您的主函数中?你会有这样的东西:

def main_func():
    from impl import a, b, c

    a()
    b()
    c()

我认为这种方法具有很高的可读性:如果您想查看较小的函数,您会看到它们的来源,导入它们是一行代码,而主要函数的实现是直接可见的。通过选择适当的文件名/位置,您还可以告诉用户这些函数不适合在 main_func 之外使用(无论如何您没有真正的信息隐藏在 Python 中)。

顺便说一句:这道题没有一个正确答案。

关于Python代码/函数布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18481523/

相关文章:

python - 将 env.yml 从 Anaconda 转换为 Pip req.txt

python - 使用离散变量的二维离散彩色图

用于数据分析类的 Python 装饰器

python - 用 NA 值填充 dict 以允许转换为 pandas 数据帧

python - 如何知道如何重新使用什么来分割字符串?

python - 使用 Python/Scipy 对角化大型稀疏矩阵

Python Pandas : "can not merge DataFrame with instance of type <class ' str'>"

php - 动态图像调整大小

python - 如果某些行不存在于其他数据帧中,Pandas 连接两个数据帧并保留一个数据集中的数据

python - Django 登录 - 缺少 1 个必需的位置参数