【发布时间】:2017-09-16 18:31:27
【问题描述】:
让:a = 5、b = 10 和 hello_world = 'Hello World'。
据我了解:Python 允许我们使用赋值运算符来防止我们不得不重复左操作数。例如,a = a + b 可以重写为a += b,其中两者都将返回15。
所以对于一些 Python 对象,它可能有点相似,这取决于被调用的方法返回什么。
对于字符串str,或者本例是我们的字符串hello_world,您可以使用多种方法以某种方式修改它,例如hello_world.lower(),有时我会调用它来分配变量内方法的结果。例如,hello_world = hello_world.lower() 可以重写为类似hello_world .= lower() 的东西,两者都将返回hello world。
在 Python 中有类似的东西吗?这对您来说是完全荒谬或令人困惑的吗?好奇人们对此有何看法和/或它是否已经存在。
【问题讨论】:
-
不,那不可能
-
@ingvar 解释?
-
通过
+=应用操作和分配是Syntactic sugar。数字和字符串的行为不同,+运算符在应用于不同的上下文时会得到不同的含义。 -
@alfasin:它不仅仅是语法糖。这也是一个优化机会。
标签: python augmented-assignment