【问题标题】:Why in Python, += and -= are considered as delimiters?为什么在 Python 中,+= 和 -= 被视为分隔符?
【发布时间】:2014-06-09 18:24:18
【问题描述】:

我正在阅读关于 python 的tutorial,更准确地说是词法结构。 我只想知道为什么在 Python 中:

+= , -= ,  *= ,  /= ,  //= ,  %=, <= ,  |= ,  ^= , >>= , <<=  , **= 

被视为分隔符而不是运算符?毕竟,“+=”是一个自增运算符,对吧?

【问题讨论】:

  • “分隔符”是什么意思?
  • 来源?当您不提供来源时,很难解释词汇的选择。
  • 哦,我明白了,这实际上是有道理的。
  • 在语言语法中,您的语法类似于 := 。这就是解释器如何处理和标记代码行的方式。我猜它被称为分隔符,因为它可以分隔表达式。就像 FlexKling 在编译器/解释器的词法分析中所说的那样。
  • 您不需要在也是分隔符的标记周围使用空格。就是这样。

标签: python operators delimiter


【解决方案1】:

您引用的语法在augmented assignment statements 中使用。和普通的assignment 一样,它们不是表达式,所以它们也不是运算符

它们恰好非常类似于某些算术运算符,但只是因为如果赋值目标没有为运算实现specific augmented assignment special method,它们会退回使用这些运算符。

分隔符是在源代码中不需要空格的标记,这就是这些标记列在该列表中的原因。

【讨论】:

  • 这正是我正在寻找的文档链接,+1。
  • 那么即使它们执行某些功能,它们也不被视为运算符或表达式?
  • @the-sizixe:没错。它们不能用作较大表达式的一部分,而运算符可以用于。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-25
  • 2015-08-06
  • 1970-01-01
  • 2015-04-26
  • 2019-11-06
  • 2011-08-24
相关资源
最近更新 更多