在python中做什么| =(管道相等)符号?

时间:2016-10-26 05:09:35

标签: python-2.7 openerp odoo-8 odoo-9

我在一个项目中看到了一段代码,其中写了以下内容:

         move = Move.create({
            'name': repair.name,
            'product_id': repair.product_id.id,
            'product_uom': repair.product_uom.id or repair.product_id.uom_id.id,
            'product_uom_qty': repair.product_qty,
            'partner_id': repair.address_id.id,
            'location_id': repair.location_id.id,
            'location_dest_id': repair.location_dest_id.id,
            'restrict_lot_id': repair.lot_id.id,
        })
        moves |= move
        moves.action_done()

这里有什么意思?

3 个答案:

答案 0 :(得分:4)

正如@AChampion已经在第一个问题评论中提到的那样,它可能是"按位或"或者"设置联盟"。虽然这个问题有Odoo作为上下文,但它是" set union"对于Odoo班RecordSet

这个类是在Odoo 8上使用新API引入的。对于其他运营商来说,请查看Odoo的官方文档。

答案 1 :(得分:0)

这是一个复合运算符,当您说:.wrapper { position: relative; } .box { text-align: center; font-size: 30px; position: absolute; padding: 100px; } .red-bg { background: -webkit-linear-gradient(-45deg, yellow 50%, red 50%); color: yellow; z-index: 3; } h3{ background: -webkit-linear-gradient(-45deg, red 50%, yellow 50%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } <div class="wrapper"> <div class="red-bg box"> <h3> Lorem Ipsum.<br>Lorem. Ipsum dolor. </h3> </div> </div> 相当于x |= y

x = x | y运算符的意思是|,它按位级别对整数进行操作,下面是一个示例:

bitwise or

另一个例子:

a = 3    #                (011)
         #                 |||
b = 4    #                (100)
         #                 |||
a |= b   #<-- a is now 7  (111)

因此,如果在两个源中的任何一个中都设置了相同的位,那么将设​​置结果中的每个位;如果两个源中的那个都在该位中都为零,则将设置为零。

管道也用于集合以获取联合:

a = 2    #                (10)
         #                 ||
b = 2    #                (10)
         #                 ||
a |= b   #<-- a is now 2  (10)

答案 2 :(得分:-1)

它的简单意思是moves = move | moves