【发布时间】:2019-02-17 16:24:14
【问题描述】:
在 python 中,我无法理解运算符的优先级。
a = set([1, 2, 3])
a|set([4])-set([2])
上面的表达式返回 {1,2,3,4}。但是,我认为运算符 |应该在之前执行 - 但这似乎不会发生。
当我应用括号时,它会返回我想要的输出,即 {1,3,4}
(a|set([4]))-set([2])
所以,我的问题是为什么会发生这种情况,以及在应用集合操作时,运算符(对于 -、|、&、^ 等集合运算符)的优先级是什么。
【问题讨论】:
-
假设运算符具有设定的优先级,而不管上下文如何,
-的优先级高于|:mathcs.emory.edu/~valerie/courses/fall10/155/resources/… -
@Carcigenicate 这是一个有效的假设;在知道任何操作数的(运行时)类型之前解析表达式。
标签: python python-3.x operators operator-precedence