2015-09-25 29 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