Описание тега augmented-assignment
Расширенное присваивание (или составное присваивание) - это имя, данное определенным операторам присваивания в определенных языках программирования (особенно тех, которые являются производными от C). Расширенное присваивание обычно используется для замены оператора, когда оператор принимает переменную в качестве одного из своих аргументов, а затем присваивает результат той же переменной. Простым примером является x += 1, который расширяется до x = x + 1.
9
ответов
Почему += ведет себя неожиданно в списках?
+= оператор в Python, кажется, работает неожиданно в списках. Кто-нибудь может сказать мне, что здесь происходит? class foo: bar = [] def __init__(self,x): self.bar += [x] class foo2: bar = [] def __init__(self,x): self.bar = self.bar + [x] f = foo(…
27 фев '10 в 12:15
1
ответ
Почему деструктурированное расширенное назначение невозможно?
Разрушение возможно в питоне: a, b = 1, 2 Расширенное назначение также возможно: b += 1 Но есть ли причина, деструктурирующая расширенное назначение, не может быть сделано? a, b += 1, 2 > SyntaxError: illegal expression for augmented assignment И…
17 янв '19 в 05:09
4
ответа
Как реализовать "__iadd__()" для неизменяемого типа?
Я хотел бы создать подкласс неизменяемого типа или реализовать свой собственный, который ведет себя как int делает, как показано в следующем сеансе консоли: >>> i=42 >>> id(i) 10021708 >>> i.__iadd__(1) Traceback (most rec…
06 авг '12 в 21:58
2
ответа
UnboundLocalError при использовании += в списке. Почему здесь необходим нелокальный режим, когда прямой вызов __iadd__ работает нормально?
Рассмотрим этот код: def main(): l = [] def func(): l += [1] func() print(l) if __name__ == '__main__': main() Это произведет: Traceback (most recent call last): File "/Users/tahsmith/Library/Preferences/PyCharm2017.1/scratches/scratch_21.py", line …
22 май '17 в 07:28
2
ответа
Является ли этот код потокобезопасным в Python 2.7?
Должен ли я использовать атомный счетчик с блокировкой или это можно использовать? def somefunc(someparam): if someparam: dic['key'] +=1
14 ноя '16 в 16:44
2
ответа
Python троичный условно для присоединения строки
Ответил Мартин Питерс. Спасибо.Это потому, что утверждение против выражения. А поскольку.join() не видоизменяется (это чистая функция), его необходимо присвоить переменной. Вопрос:В чем причина этой странности? Цель: if base == 'T': RNA_seq += 'U' e…
10 май '14 в 07:14
1
ответ
Регулярное выражение для расширенной операции присваивания с использованием положительного прогнозирования или прогнозирования
Я использовал следующее регулярное выражение для поиска и сопоставления расширенных операторов присваивания: AUG_ASSIGN = r'\+=|\-=|\*=|@=|/=|%=|/@=|&=|\|=|\^=|\<\<=|\>\>=|\*\*=|//=' У меня есть догадка, что можно устранить многократ…
19 окт '18 в 06:19
0
ответов
Странные результаты с использованием расширенного назначения
Я пробую разные вещи с расширенным заданием на C. Однако я не могу понять, что здесь происходит и почему. Вот пример кода: int a = 3; int b = 0; a *= a = a *= a; // a = 27, b = 0 a = 3; b = 0; a *= b = a *= a; // a = 27, b = 9 a = 3; b = 0; b *= b =…
23 апр '14 в 14:00
1
ответ
Могу ли я использовать += для нескольких переменных в одной строке?
Сокращая свой код, я сокращал несколько объявлений переменных в одну строку. ##For example- going from- Var1 =15 Var2 = 26 Var3 = 922 ##To- Var1, Var2, Var3 = 15, 26, 922 Однако, когда я попытался сделать то же самое с этим кодом, User_Input += Mast…
17 янв '15 в 18:04
0
ответов
Параметр функции является справочным?
def add_list(p): p = p + [1] p1 = [1, 2, 3] add_list(p1) print p1 res:[1, 2, 3] НО def add_list(p): p += [1] p1 = [1, 2, 3] add_list(p1) print p1 res:[1, 2, 3, 1] Я не знаю почему, кто-то может объяснить это? В чем основное различие между ними?
16 июн '15 в 10:53
2
ответа
Возможность концепции оператора присваивания для метода объекта
Позволять: a = 5, b = 10, а также hello_world = 'Hello World', Насколько я понимаю: Python позволяет нам использовать операторы присваивания, чтобы нам не пришлось повторять левый операнд. Например, a = a + b может быть переписан как a += b где оба …
16 сен '17 в 18:31
0
ответов
Как Fortran обрабатывает расширенное присвоение массивов?
В последнее время я работал над некоторым кодом, который требует от меня смещения элементов в массиве влево, вправо, вверх и вниз (в зависимости от индекса i). Моей первой мыслью было попробовать что-то вроде этого: subroutine shift(f) real, intent(…
10 апр '14 в 21:15
4
ответа
Понимание списка Python против +=
Сегодня я пытался найти метод, чтобы сделать некоторую обработку строк в Python. Более старший программист, чем я сказал, не использовать += но использовать ''.join() Я мог бы также прочитать это, например: http://wiki.python.org/moin/PythonSpeed/. …
27 май '13 в 21:57
0
ответов
Предупреждение о неразрешенном атрибуте Pycharm
Пожалуйста, рассмотрите следующий код: import numpy as np r = [1, 0, -1, 0] bins = np.fft.fft(r) / len(r) x = bins.view(float) Учитывая приведенный выше код, PyCharm возвращает это предупреждение: Unresolved attribute reference 'view' for class 'int…
29 май '15 в 12:24
2
ответа
Приоритет оператора Python с расширенным присваиванием
Кажется, на этот вопрос ответили только для Java, но я хотел бы знать, как это работает в Python. Так это одно и то же? a += b / 2 а также a += (b / 2)
25 сен '18 в 18:54
2
ответа
Расширенное назначение на python для логических операторов
Есть ли в Python операторы расширенного присваивания, соответствующие его логическим операторам? Например, я могу написать это: x = x + 1 или это: x += 1 Есть ли что-то, что я могу написать вместо этого: x = x and y Чтобы не писать "х" дважды? Обрат…
16 окт '14 в 16:38
0
ответов
Изменить цвет QR-кода в режиме реального времени
Я хочу изменить цвет QR-кода на желтый с оригинального черного цвета в режиме реального времени. Насколько я понимаю, это будет тема дополненной реальности, которая является новой для меня. Я уже искал в Google, но ничего релевантного я там не нашел…
11 фев '18 в 15:00
1
ответ
Приоритет оператора Python с расширенным присваиванием, включая последовательность
В продолжение моего предыдущего вопроса у меня следующий. Это то же самое в Python? a += b[1] / 2 а также a += (b[1] / 2) При условии что: a ранее был определен как float b это список кортежей b[1] это кортеж с одним элементом Точно так же мне было …
25 сен '18 в 19:31
1
ответ
Булевый оператор Python на месте
Python имеет операторы на месте, такие как -= а также |= для арифметических и битовых операций: FLAG_FOO = 1 << 0 FLAG_BAR = 1 << 1 mask = FLAG_FOO mask |= FLAG_BAR assert mask == 3 == FLAG_FOO | FLAG_BAR Есть ли эквивалент для фактическ…
21 апр '17 в 01:32
1
ответ
Как сделать изменяемое свойство доступным только для чтения?
У меня есть два класса, один с переопределением "оператор на месте" (скажем, +=) и другой, который выставляет экземпляр первого через @property, (Примечание: это значительно упрощает мой действительный код до минимума, который воспроизводит проблему…
22 июл '16 в 16:46