2015-09-25 19 views
0

我继承包含以下行Python中有什么?

someStrict |= ufDict.get('preferencesPolicy', None) == 'strict' 

什么是应用程序| =操作呢?我找不到任何覆盖它的文档。

回答

2

这是一个就地OR操作符。

以上Live是等效于:

someStrict = someStrict or ufDict.get('preferencesPolicy', None) == 'strict' 

基本上它设置someStrict值仅当该值不处于首位falsy。最好的选择是someStrictNone的花式测试(因为None在布尔上下文中是伪造的)。

+1

另外,它的文档在这里:[http://python-reference.readthedocs.org/en/latest/docs/operators/bitwise_inclusive_OR_assignment.html](http://python-reference.readthedocs.org/ en/latest/docs/operators/bitwise_inclusive_OR_assignment.html) – stett

+0

'| ='是'|'不是'或'的就地版本。该问题的代码错误。 get()可以返回None,但None不能是'|'(或'| =')的操作数。 –

+0

@KlausD。但是,首先处理的是==。 – glglgl