Python中函数参数的命名规范

3 投票
2 回答
5263 浏览
提问于 2025-04-18 14:35

函数的参数名称应该反映它们所用的函数的上下文吗?

举个具体的例子,看看Python中的情况,来自这本书

def create_radio_button(rb_name, rb_value):

def create_radio_button(name, value):

Python的风格指南建议使用下划线来避免关键词冲突,但没有提到参数前缀的使用。在《代码整洁之道》中,Bob Martin建议选择易于发音的变量名,并避免使用编码,这可能不太支持使用rb_这样的前缀。不过,他接着说变量名应该是可以搜索的。我的主要目标是提高代码的清晰度,所以我想听听大家觉得什么样的命名方式最容易使用。

2 个回答

2

这个问题其实不仅仅是关于Python的。参数的名字应该尽量简洁明了地描述它的作用(所以在你的例子中,我建议直接用“name”和“value”)。

当然,这并不能替代真正的文档,我建议使用一些比较标准的标签

     :param name: description
     :param value: description

(你也可以在参数名字前面加上预期的类型)

一般来说,函数应该比较简短,这样就很明显“name”是这个函数的一个参数。

我觉得使用rb_这个前缀只适合全局变量,而在Python应用中,全局变量应该是比较少见的(最好还是用类变量)。

5

这要看具体情况,也可能和个人喜好有关系。

def create_radio_button(name, value)

我推荐上面的选项,而不是其他的,因为从上下文来看,我们在讨论的是单选按钮,所以“rb_”这个前缀其实是多余的,因为它在函数名中已经出现过了。

关于变量名可以搜索的评论,我想是指使用像p这样的变量名是不太好的做法,因为你可能想要搜索或高亮这个变量名,但这样会导致你找到任何包含字母p的单词,这样就很麻烦了。不过在这里这个问题不太严重,“name”和“value”这两个词足够容易搜索了。

* 对于使用好编辑器的人来说,这最后一点就没那么重要了,因为我们可以重构/重命名一个符号,IDE应该足够聪明,知道在上下文/范围内哪里使用了这个符号。

撰写回答