我刚刚被一个如果list
是 Python 中的保留字就可以防止的错误所困扰。(可以肯定的是,我的邓伯里。)
那么为什么 list (或 dict 或 float 或任何类型)不是保留字呢?添加解释器错误似乎比尝试记住规则更容易。
(我也知道 Eclipse/PyDev 有一个设置会提醒你这条规则,这很有用。)
我刚刚被一个如果list
是 Python 中的保留字就可以防止的错误所困扰。(可以肯定的是,我的邓伯里。)
那么为什么 list (或 dict 或 float 或任何类型)不是保留字呢?添加解释器错误似乎比尝试记住规则更容易。
(我也知道 Eclipse/PyDev 有一个设置会提醒你这条规则,这很有用。)
看看这个:http ://docs.python.org/2/reference/lexical_analysis.html#keywords
list
只是一个类型并且不是保留的(也不是int
, float
, dict
, str
... 你明白了)。
可能出于相同的原因哪些类没有私有属性。这就是 Python 的精神。
这是一个意见问题,但这是我的 2c。
保留关键字是一件大事,因为本质上这意味着您永远不能在代码中使用该关键字,因此通常认为保持列表简短的良好编程语言设计。(perl 没有,但是 perl 与大多数其他编程语言具有完全不同的理念,并在变量之前使用特殊符号来尝试防止冲突)。
无论如何,要了解为什么会这样,请考虑前向兼容性。想象一下,python 开发人员决定这array
是一个如此基本的概念,以至于他们想让它成为一个内置的(不是不可想象的——这发生set
在,嗯,python 2.6 中?)。如果内置函数被自动保留,那么任何以前使用array
过其他东西的人(即使显式导入为 a from superfastlist import array
),或者实现了自己的(numpy
已经这样做了),都会突然发现他们的代码不起作用,他们会非常愤怒。
(就此而言,请考虑是否help
将其设为保留字 - 包括 argparse 在内的无数库help
用作关键字参数)