这个运算符组合在python“ \ <return> |”中有什么用?

时间:2019-07-30 07:58:01

标签: python

好吧,我遇到了一段代码,但我不太清楚它的功能。 它是这样的:

thresholds = (image[:,:,0] < rgbThreshold[0]) \
            | (image[:,:,1] < rgbThreshold[1]) \
            | (image[:,:,2] < rgbThreshold[2])

就在那边

  

\ <“ return”> | | (image [:,:,1] <....

我不太清楚它的作用。

如果有人想知道此代码的含义,可以使用一组RGB阈值(redThreshold,green ....)和一个图像“ image”。

我只选择所有低于指定阈值的像素。然后我通过colorSelect[threshold] = [0,0,0]访问它们,即将它们变黑(colorSelect是一个numpy数组,通过RBG像素值表示图像。)

3 个答案:

答案 0 :(得分:1)

|表示or\仅用于使下一行的内容符合PEP-8准则,使用户能够以这种方式更好地阅读代码

这里:

thresholds = (image[:,:,0] < rgbThreshold[0]) \
            | (image[:,:,1] < rgbThreshold[1]) \
            | (image[:,:,2] < rgbThreshold[2])

与:

thresholds = (image[:,:,0] < rgbThreshold[0]) | (image[:,:,1] < rgbThreshold[1]) | (image[:,:,2] < rgbThreshold[2])

答案 1 :(得分:1)

\将其分成新行以便于阅读,并且竖线字符用作bitwise or来组合这三个值。

答案 2 :(得分:1)

image[:,:,1]的意思是image[0:():(1)],意思是image.__getitem__(0, (), (1))
,在这种情况下是一个空元组