基于求值顺序显式括起Python表达式

基于求值顺序显式括起Python表达式,python,operator-precedence,Python,Operator Precedence,有时,在表达式中是否需要括号并不明显。考虑: arr == 1 | arr == 2 # evaluates as: arr == ((1 | arr) == 2) 我正在尝试创建一个CLI工具,它允许我输入一个表达式,并输出显式括起来的同一个表达式 什么是干净的方法?Python是否提供了这样的现成功能 REF:我不明白这一点,除非指定括号,否则Python会根据优先级“正确”地进行操作,这不是括号的作用吗?(1)您似乎期望一个函数“读懂我的心思”来完成您所期望的,而不是您所写的。这是您和

有时,在表达式中是否需要括号并不明显。考虑:

arr == 1 | arr == 2  # evaluates as: arr == ((1 | arr) == 2)
我正在尝试创建一个CLI工具,它允许我输入一个表达式,并输出显式括起来的同一个表达式

什么是干净的方法?Python是否提供了这样的现成功能


REF:

我不明白这一点,除非指定括号,否则Python会根据优先级“正确”地进行操作,这不是括号的作用吗?(1)您似乎期望一个函数“读懂我的心思”来完成您所期望的,而不是您所写的。这是您和语言定义之间的不同意见。为了有一个可行的问题陈述,您需要指定“正确”解释的含义。(2)“我如何设计函数…?”您可以按照设计任何函数的方式来执行:指定输入和输出。分析该转换,将其分解为组件步骤。教您如何做到这一点并不是堆栈溢出问题。即使是为这样一个“DWIM”(我的意思是做什么)函数执行高级步骤,对于堆栈溢出来说也太宽了。我的错,对不起。这个问题提得很糟。我已经修好了。您想要一个根据您想要的参数分组插入括号的函数,还是Python实际用于输入表达式的参数分组函数?
a, b = 3, 4; print(a, b == 3, 4)  # prints: 3, False, 4