问题标签 [augmented-assignment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1903 浏览

python - 用于连接字符串的 Python 三元条件

Martijn Pieters 回答。谢谢你。
这是因为语句与表达式。而且因为 .join() 不会变异(是一个纯函数),所以需要赋值给一个变量。

问题:
这种奇怪的原因是什么?

目标:

以下方法有效:

但是以下方法不起作用:

或者

Python2 和 Python3 的结果相同。

0 投票
2 回答
1165 浏览

python - 布尔运算符的python增强赋值

Python 是否有与其布尔运算符相对应的增强赋值语句?

例如我可以这样写:

或这个:

有什么我可以写的吗:

为了避免两次写“x”?

请注意,我知道使用 &= 的语句,但我一直在寻找一种适用于 y 是任何类型的语句,而不仅仅是当 y 是布尔值时。

0 投票
1 回答
2347 浏览

python - 我可以在一行上对多个变量使用 += 吗?

在缩短我的代码时,我将一些变量声明减少到一行 -

但是,当我尝试对这段代码做同样的事情时——

这会引发错误

我已经阅读了相关的 Python 文档,但我仍然找不到缩短这段特定代码的方法。

0 投票
0 回答
1653 浏览

pycharm - Pycharm 未解析的属性引用警告

请考虑以下代码:

鉴于上述代码 PyCharm 返回此警告:Unresolved attribute reference 'view' for class 'int' 如果我将第 4 行拆分为两行,例如

,出现同样的警告。只有以下不会引发警告:

为什么 PyCharm在前两个版本bins中将类型视为类型int,以及增强赋值如何以及为什么会改变这种行为?

我在 Yosemite 上运行 PyCharm 4.5.1 社区版。

0 投票
0 回答
28 浏览

python - 函数参数是参考?

我不知道为什么,有人可以解释一下吗?它们之间的主要区别是什么?

0 投票
5 回答
2263 浏览

python - Python 一行 if-else 与不同的运算符

我在 python 中摆弄了一行 if 和 for 语句,并遇到了以下问题:

我可以进行以下工作:

但我想在相同的上下文中使用 = 和 +=,如下所示:

我怎样才能在一行中实现这一点?

0 投票
1 回答
1653 浏览

python - `self[key] += value`的魔术方法?

有一种__setitem__分配=给序列类型的 Python 魔术方法。在容器级别是否有用于增强分配的神奇方法?+= 该操作似乎可以优雅地分解为 item-type 的增强分配。这是合乎逻辑的。但是几乎所有其他事情都有一个神奇的方法,我认为应该有一组方法用于序列类型上的这些运算符。我错过了吗?

应用程序是一种数据库。考虑__getitem__使用 SELECT 和__setitem__INSERT 来实现。__additem__UPDATE应该有类似的东西,对吧?

这是选择:

这是插入:

如何实现更新?在不分解为 SELECT 和 INSERT 的情况下:

那么有没有办法以不同于分解步骤的方式实现增强分配?没有将所有行为放在 Item 类中?


您可以将上述代码剪切并粘贴到 python 解释器中,或者在这个 Python fiddle 上尝试:http: //pythonfiddle.com/add-item-for-sequence/


一个相关的问题显示了反编译self[key] += value

0 投票
1 回答
353 浏览

python - 如何使只读属性可变?

我有两个类,一个具有“就地运算符”覆盖(例如+=),另一个通过@property. (注意:这从我的实际代码大大简化到重现问题的最低限度。)

现在,当我尝试在暴露的属性上使用该运算符时:

从我发现这是可以预料的,因为它试图将属性设置为owner. 是否有某种方法可以防止属性设置为新对象,同时仍允许我(就地)修改其背后的对象,或者这只是语言的一个怪癖?

(另请参阅this question,但我正尝试另辟蹊径,最好不要恢复到旧式类,因为最终我希望它可以与 Python 3 一起使用。)


与此同时,我用一种做同样事情的方法解决了这个问题。

0 投票
2 回答
150 浏览

python - 这个代码在 python 2.7 中是线程安全的吗?

我应该使用带锁定的原子计数器还是可以使用它?

0 投票
2 回答
1302 浏览

python - 使用 freezeset 的增强分配

我刚刚在 freezeset 上尝试了一个增强的任务,结果让我感到惊讶:

这不应该发生,是吗?freezesets 不是不可变的吗?