Python样式,命名常量参数

时间:2015-04-07 08:59:52

标签: python coding-style

我正在考虑将未在函数体中修改的那些Python函数参数拼写为ALL_UPPERCASE,向这样的API的用户发出信号,告知传递的值不会被修改(如果所有内容都按照所宣传的那样进行,无论如何)。我不知道这会碰到的Python惯例或语言机制;有没有?这样的命名惯例是可取的,还是只是不必要的奇怪?

E.g:

def foo(bar, BAZ):
    return bar.some_method(BAZ.some_property)

1 个答案:

答案 0 :(得分:3)

UPPERCASE用于全局常量,而不是函数参数。请参阅此处的Python Style Guide

在Python函数签名中,您希望所有参数不被修改。如果一个参数需要一个可变对象并且它将被就地更改,那么这就是异常,应该记录如下:

def foo(bar, baz):
    """Frobs the bar in baz

    Alters the baz list in-place, and returns None.

    """

将UPPERCASE用于未被修改的函数参数将因此a)混淆(因为它与样式指南冲突)和b)冗余,因为大多数代码都不会改变可变对象,除非记录为明确这样做