为什么'list'不是Python中的保留字?

7 投票
4 回答
6395 浏览
提问于 2025-04-17 14:44

我刚遇到一个问题,如果在Python中把list当成一个保留字的话,这个问题本来是可以避免的。(这确实是我自己的失误。)

那么,为什么像list(或者dict、float这些类型)不被当作保留字呢?这样似乎比记住一个规则要简单,直接加个错误提示不是更好吗?

(我知道Eclipse/PyDev有一个设置,可以提醒你这个规则,这个功能挺有用的。)

4 个回答

0

可能是因为和类没有私有属性的原因一样。这就是Python的精神所在。

3

看看这个链接:http://docs.python.org/2/reference/lexical_analysis.html#keywords

list 只是一个数据类型,并不是保留字(像 intfloatdictstr 这些也都不是保留字...你懂的)。

17

只有关键字是被保留的。

list 不是关键字,而是一种内置类型,像 strsetdictunicodeintfloat 等等也是内置类型。

没有必要把每一种内置类型都保留起来;Python 是一种动态语言,如果你想用一个本地名称来替代内置类型,让它“遮盖”掉原来的类型,你是可以这么做的。

可以把 list 和其他类型想象成一个预先导入的对象类型库;你也不会期待 collections 中的 defaultdict 被保留吧?

使用静态代码分析工具来捕捉这些错误;大多数集成开发环境(IDE)都可以轻松集成这样的工具。

撰写回答