Python支持哪些拼写错误/打字错误?
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调用、
不是交替拼写,例如
is_dir
vsisdir
,也不是color
vscolor
,而是实际拼写错误的别名,例如属性的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的其他地方“支持”排版的理由要少得多,因为当排版完成后,它会更加明显。因此,这可能是唯一一种以特殊方式处理排版的情况,这并不奇怪。