【发布时间】:2015-03-02 02:57:11
【问题描述】:
给定:
variableX = 5
someValueY = 6
假设您要分配给variableX variableX 和someValueY 的最大值:
variableX = max(variableX, someValueY)
我不止一次认为有这样的东西会很好:
variableX max= someValueY
类似于+= 和其他赋值运算符。
这是个好主意吗?它已经存在了吗?这不是 Pythonic 吗?
【问题讨论】:
-
为什么这是个好主意?存在增强操作以使左侧对象有机会进行就地更改。
max()永远不会改变它的操作数。这与max()不是运算符这一事实完全不同。它是一个函数,它需要更多可选参数,如果它是运算符,则无法传入。 -
Downvote 不是我的,但“为什么我最喜欢的复合赋值运算符不是语言 X 的一部分”不是很有建设性。这样一个“Pythonic”的运算符看起来也很主观。
-
我没有投票,但 good idea 和 Pythonic 部分显然是主观的(因此偏离主题)。我个人认为这种表示法并不直观,除了几次击键外,我看不出它会买什么。至于是否存在,恐怕答案是no。
-
@jonrsharpe 错了。
foo = foo + bar也以相同的方式读取,但我们仍然有foo += bar -
G++ used to have operators that did this but removed them,可能是因为 C++ 添加了其他计算最小值和最大值的方法:“G++ 最小和最大运算符(
<?和>?)及其复合形式(<?=)和>?=) 已被弃用,现在已从 G++ 中删除。使用这些运算符的代码应修改为使用 std::min 和 std::max。"
标签: python max min assignment-operator