【发布时间】:2016-04-10 15:38:29
【问题描述】:
在进入 python 之前,我已经开始阅读一些 Objective-C / Cocoa 书籍。我记得,大多数函数都需要明确声明关键字参数。直到最近我都忘记了这一切,只是在 Python 中使用了位置参数。但最近,我遇到了一些由于位置不当而导致的错误——它们是鬼鬼祟祟的小东西。
让我开始思考——一般来说,除非有特别需要非关键字参数的情况——有什么好的理由不使用关键字参数吗?即使对于简单的功能,总是使用它们是否被认为是不好的风格?
我觉得我的大多数 50 行程序都定期扩展到 500 行或更多行,如果我习惯总是使用关键字参数,那么随着代码的增长,代码将更容易阅读和维护。有什么理由可能不是这样吗?
更新:
我得到的总体印象是,它是一种风格偏好,有很多很好的论据,它们通常不应该用于非常简单的论据,但在其他方面与良好的风格一致。不过,在接受之前,我只想澄清一下——这种方法是否会出现任何特定的非风格问题——例如,显着的性能损失?
【问题讨论】:
-
我看到一个建议总是使用关键字参数的地方是
__init__。见fuhm.net/super-harmful。这不像你在这里问的那么笼统,但它是一个支持你所建议的论据。 -
我会说你问为什么 Python 会这样,因为他是从 Objective-C 转向 Python。如果你反其道而行之,你会问为什么 Objective-C 要求我们在任何地方都使用关键字参数! (但并不是说这是一个糟糕或不合理的选择;它只是一种不同的设计。但是,完整的语言会受到它的影响,因此我建议您不要尝试将这种设计复制到其他语言)跨度>
标签: coding-style python