【发布时间】:2011-10-02 05:53:19
【问题描述】:
为了避免明显的错误,我想防止在某些函数中使用位置参数。有什么方法可以实现吗?
【问题讨论】:
-
为什么要这样做?我们都是成年人,对吧?
-
答案其实很简单:不要。我知道,您可能会认为有一个很棒的用例可以出色地解决某些问题,但是相信我,您正在违背该语言的基本哲学——我们都是同意的成年人。走这样的路只会让人难过。
-
这听起来像一个愚蠢的事情来强制。但是,如果您愿意,您可以养成在函数调用时按名称指定位置 arg 的习惯。这样,如果位置 arg 的名称发生更改,调用者将收到 TypeError(这是您要避免的那种明显的错误吗?)。
-
强制执行并不是那么愚蠢。有些函数最好使用仅关键字参数:
list.sort(reverse=True)就是一个例子。这允许更高版本的 API 重新排列参数(如 Python 3 所做的那样)。如果参数顺序不是 API 的一部分,则使用位置参数的代码可能会在使用更高版本的相关库时中断。此类错误绝不应无声无息地过去。
标签: python function coding-style python-3.x