如果我理解正确,最好不要对已经是 Python 中的全局函数的局部变量使用表达式。所以我相信这个
list = [1,2,3]
不推荐赞成
mylist = [1,2,3]
因为list
它已经是 Python 中的内置对象,而mylist
不是。但是,我并不总是确定是否应该使用某些表达式(例如dir
,num
或cnt
)。对命名局部变量时最好避免使用的字符串有任何全面的概述吗?
如果我理解正确,最好不要对已经是 Python 中的全局函数的局部变量使用表达式。所以我相信这个
list = [1,2,3]
不推荐赞成
mylist = [1,2,3]
因为list
它已经是 Python 中的内置对象,而mylist
不是。但是,我并不总是确定是否应该使用某些表达式(例如dir
,num
或cnt
)。对命名局部变量时最好避免使用的字符串有任何全面的概述吗?
基本上,避免所有这些。所有这些都在__builtin__
模块内(builtins
在 Python 3 中)。
来源: Python 标准库 » 内置函数。
要避免的名称是关键字(这会给你一个错误,所以很容易发现)和内置函数,它们会被默默地屏蔽。下面是测试坏名的代码片段:
from keyword import kwlist
def bad_name(name):
return name in dir(__builtins__) + kwlist
...这是一个列表(适用于 Python 3.3):
内置函数、类型等
abs all any ascii
bin bool bytearray bytes
callable chr classmethod compile
complex copyright credits delattr
dict dir divmod enumerate
eval exec exit filter
float format frozenset getattr
globals hasattr hash help
hex id input int
isinstance issubclass iter len
license list locals map
max memoryview min next
object oct open ord
pow print property quit
range repr reversed round
set setattr slice sorted
staticmethod str sum super
tuple type vars zip
CamelCase 中的任何内容(如内置异常)或以双下划线开头的内容都从上面的列表中排除,因为无论如何您都不应该使用它们。
关键词
False None True and
as assert break class
continue def del elif
else except finally for
from global if import
in is lambda nonlocal
not or pass raise
return try while with
yield