я столкнулся с чем-то интересное о питона дополненной назначении +=
Python дополненной вопрос о назначении
это, кажется, автоматическое преобразование типов данных не всегда делается для a += b
, если это «проще» тип данных, в то время как a = a + b
кажется, работа всегда
случаев, когда преобразование выполняется
a = 1
b = 1j
a = 1
b = 0.5
случая, когда преобразование не сделано
from numpy import array
a = array([0, 0 ,0])
b = array([0, 0, 1j])
после a += b
, a
остается целочисленной матрицы, вместо комплексной матрицы
я использовал думать a += b
такой же, как a = a + b
, в чем разница их в основной реализации?
Что означает 'массив' в вашем примере? Это из встроенного модуля 'array'? если это так, ваш пример даже не работает, поскольку нет typecode ... – SingleNegationElimination
'a = array ([0, 0, 0])' и 'b = array ([0, 0, 1j])' don ' t работать с классом 'array' в модуле с тем же именем. Они оба не имеют начального аргумента * typecode *. И, AFAIK, класс не поддерживает сложные числа, а '+ =' расширенное назначение. Поэтому я не понимаю, что вы просите здесь. – martineau
@martineau См. Мой комментарий к отвечу Rafe (теперь удален.), Ссылаясь на этот вопрос NumPy: http://www.scipy.org/FAQ#head-1ed851e9aff803d41d3cded8657b2b15a888ebd5 – ACoolie