python中函数参数的命名约定

时间:2014-07-24 10:22:09

标签: python function arguments naming-conventions

函数参数的名称是否应该反映使用它们的函数的上下文? 举一个Python的具体例子,(取自this教科书):

def create_radio_button(rb_name, rb_value):

VS

def create_radio_button(name, value):

Python style guide建议使用下划线来避免关键字冲突,但未提及在参数中使用前缀。在Clean Code中,Bob Martin建议选择可发音的变量名称并避免编码,这可能会计入rb_前缀。但是,他通过声明变量名称应该是可搜索的来遵循这一点。我的主要目标是提高代码的清晰度,因此我很想知道人们最容易找到的内容。

2 个答案:

答案 0 :(得分:3)

这取决于背景,也许在某种程度上取决于个人偏好。

def create_radio_button(name, value)

在这里推荐上面的其他选项,因为我可以从上下文中看到我们正在谈论一个单选按钮,所以“rb_”前缀是冗余信息,它已经在函数名中重复了。

有关变量名称可搜索的评论我猜是指使用变量名称(如p)的不良做法,您可能希望搜索或突出显示变量名称,从而导致查找包含p的任何字词。这个问题在这里不太适用,“名称”和“价值”可以搜索到足够的*。

*最后一点对于使用体面编辑器的人来说有点没有意义,我们可以在其中重构/重命名符号,IDE应该足够聪明,以了解用法在上下文/范围中的位置 < / p>

答案 1 :(得分:0)

这是一个比python更普遍的问题。参数名称应尽可能简洁地描述其角色(因此我只使用&#34; name&#34;和&#34; value&#34;在您的示例中)。 当然,这并不能取代实际的文档,为此我会推荐一些标准的标签

     :param name: description
     :param value: description

(您也可以在上面的名称之前添加参数的预期类型)

一般来说,功能应该相对较短,所以很明显,名称&#39;是函数的参数。

我认为使用rb_前缀只对全局变量有意义,在python应用程序中,这应该是非常罕见的(更好地使用类变量)。