Python支持哪些拼写错误/打字错误?

Python支持哪些拼写错误/打字错误?,python,python-3.x,Python,Python 3.x,Python支持哪些拼写错误/打字错误 不是交替拼写,例如is_dirvsisdir,也不是colorvscolor,而是实际拼写错误的别名,例如属性的proprety(不受支持).从Python 3.5 beta 3开始,对象现在支持assret代替assert——请注意,这不是关键字assert,而是与正则表达式assert.或assret.匹配的模拟对象的任何属性 一些解释: 创建模拟对象时,任何属性访问的默认值都是返回一个新的mock,但有一种情况除外:如果该属性是assert\u调用、

Python支持哪些拼写错误/打字错误


不是交替拼写,例如
is_dir
vs
isdir
,也不是
color
vs
color
,而是实际拼写错误的别名,例如
属性的
proprety
(不受支持).

从Python 3.5 beta 3开始,对象现在支持
assret
代替
assert
——请注意,这不是关键字
assert
,而是与正则表达式
assert.
assret.
匹配的模拟对象的任何属性

一些解释:

创建模拟对象时,任何属性访问的默认值都是返回一个新的
mock
,但有一种情况除外:如果该属性是
assert\u调用
assert\u调用一次
assert\u任何调用
assert\u调用
、以及
assert\u未调用
,在这种情况下,一些代码实际上正在运行

问题是,如果一个人忘记了确切的名称,并使用(例如,
assert\u called
),那么与其运行代码检查是否调用了mock,不如返回一个新的mock,然后编写的测试通过,而不是实际执行测试,并且可能失败

为了解决此问题,如果对以
assert
开头的属性进行任何访问,则
Mock
现在将引发
AttributeError

除了
assert
Mock
还将在访问以
assret
开头的属性时引发
AttributeError


如果你不想要额外的保护(对于
assert
assret
),你可以在创建
Mock
时使用
unsafe=True

有人投票认为关闭范围太广-我不同意:我怀疑当前的答案是语言/stdlib中唯一支持的拼写错误。。。如果还有一些其他的,我想知道它们是什么。这在python dev上已经被谈论到了死亡(复活,然后再次被杀死,等等),但是
mock
正在做的事情似乎是一个非常特殊的情况-通常一个输入错误在执行时会导致巨大的失败,但是在
mock
的情况下,它会导致一个无声错误(某种程度上)。在stdlib的其他地方“支持”排版的理由要少得多,因为当排版完成后,它会更加明显。因此,这可能是唯一一种以特殊方式处理排版的情况,这并不奇怪。