【问题标题】:Assignment and addition in one line一行中的赋值和加法
【发布时间】:2020-02-22 08:23:15
【问题描述】:

python中是否有以下等价物?

ICMP_SEQUENCE_NUM   = self.sequence_num ++

即先赋值ICMP_SEQUENCE_NUM = self.sequence_num,然后将self.sequence_num加一?

【问题讨论】:

  • @flakes -- 谢谢,这正是我想要的。

标签: python python-3.x


【解决方案1】:

虽然没有办法直接进行后缀或前缀操作,但可以使用新的海象运算符:=(赋值表达式)来接近。这只能在 Python >= 3.8 中实现:

# works
self.sequence_num = (ICMP_SEQUENCE_NUM := self.sequence_num) + 1

请注意,您不能在对象属性上使用海象运算符,因此无法执行以下操作

# does not work
ICMP_SEQUENCE_NUM = (self.sequence_num := self.sequence_num + 1) - 1

【讨论】:

    猜你喜欢
    • 2021-10-06
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    相关资源
    最近更新 更多