Python 样式,命名常量参数
Python style, naming constant arguments
我正在考虑将函数体中未修改的那些 Python 函数参数拼写为 ALL_UPPERCASE,向使用此类 API 的用户发出信号,表明传递的值获胜' 被修改(如果一切都像宣传的那样,无论如何)。我不知道 Python 会与之冲突的约定或语言机制;有没有这样的命名约定是否可取,或者只是不必要的奇怪?
例如:
def foo(bar, BAZ):
return bar.some_method(BAZ.some_property)
UPPERCASE 用于全局常量,而不是函数参数。请参阅此处的 Python Style Guide。
在 Python 函数签名中,您希望 所有 参数未被修改。如果一个参数需要一个可变对象并且它将被就地更改,那么这是一个例外,应该这样记录:
def foo(bar, baz):
"""Frobs the bar in baz
Alters the baz list in-place, and returns None.
"""
因此,对未修改的函数参数使用大写会 a) 令人困惑(因为它与样式指南冲突)和 b) 多余,因为大多数代码不会就地更改可变对象,除非记录为这样做如此明确。
我正在考虑将函数体中未修改的那些 Python 函数参数拼写为 ALL_UPPERCASE,向使用此类 API 的用户发出信号,表明传递的值获胜' 被修改(如果一切都像宣传的那样,无论如何)。我不知道 Python 会与之冲突的约定或语言机制;有没有这样的命名约定是否可取,或者只是不必要的奇怪?
例如:
def foo(bar, BAZ):
return bar.some_method(BAZ.some_property)
UPPERCASE 用于全局常量,而不是函数参数。请参阅此处的 Python Style Guide。
在 Python 函数签名中,您希望 所有 参数未被修改。如果一个参数需要一个可变对象并且它将被就地更改,那么这是一个例外,应该这样记录:
def foo(bar, baz):
"""Frobs the bar in baz
Alters the baz list in-place, and returns None.
"""
因此,对未修改的函数参数使用大写会 a) 令人困惑(因为它与样式指南冲突)和 b) 多余,因为大多数代码不会就地更改可变对象,除非记录为这样做如此明确。