je suis tombé sur quelque chose d'intéressant au sujet de l'affectation augmentée python +=
Python problème d'affectation augmenté
il semble être la conversion automatique de type de données ne sont pas toujours fait pour a += b
si un est un type de données « plus simple », alors que a = a + b
semble Travaillez toujours
cas où la conversion se fait
a = 1
b = 1j
a = 1
b = 0.5
cas où la conversion ne se fait pas
from numpy import array
a = array([0, 0 ,0])
b = array([0, 0, 1j])
après a += b
, a
reste comme matrice entière, au lieu de la matrice complexe
Je pensais que a += b
est le même que a = a + b
, quelle est la différence d'entre eux dans la mise en œuvre sous-jacente?
À quoi fait référence 'array' dans votre exemple? Est-ce à partir du module builtin 'array'? Si oui, votre exemple ne fonctionne même pas, car il n'y a pas de code de type ... – SingleNegationElimination
'a = array ([0, 0, 0])' et 'b = array ([0, 0, 1j])' don ' t travailler avec la classe 'array' dans le module du même nom. Ils manquent tous les deux un argument * typecode * initial. Et, AFAIK, la classe ne supporte pas les nombres complexes ni l'assignation augmentée "+ =". Donc je ne comprends pas ce que vous demandez ici. – martineau
@martineau Voir mon commentaire sur la réponse de Rafe (maintenant supprimé.) En référence à cette question numérique: http://www.scipy.org/FAQ#head-1ed851e9aff803d41d3cded8657b2b15a888ebd5 – ACoolie