tôi chạy vào một cái gì đó thú vị về việc chuyển nhượng python tăng cường +=
Python tăng cường phân công vấn đề
nó có vẻ là kiểu dữ liệu tự động chuyển đổi không phải luôn luôn làm cho a += b
nếu a là một 'đơn giản' kiểu dữ liệu, trong khi a = a + b
dường như làm việc luôn
trường hợp chuyển đổi được thực hiện
a = 1
b = 1j
a = 1
b = 0.5
trường hợp chuyển đổi không được thực hiện
from numpy import array
a = array([0, 0 ,0])
b = array([0, 0, 1j])
sau a += b
, a
vẫn là ma trận số nguyên, thay vì ma trận phức tạp
tôi đã từng nghĩ a += b
cũng giống như a = a + b
, sự khác biệt của họ trong việc thực hiện cơ bản là gì? câu trả lời
'mảng' trong ví dụ của bạn là gì? Đó có phải là từ mô-đun 'mảng' được xây dựng không? nếu như vậy, ví dụ của bạn thậm chí không hoạt động, vì không có typecode ... – SingleNegationElimination
'a = array ([0, 0, 0])' và 'b = mảng ([0, 0, 1j])' don ' t làm việc với lớp 'mảng' trong mô-đun cùng tên. Cả hai đều thiếu một đối số * typecode * ban đầu. Và, AFAIK, lớp không hỗ trợ các số phức và cũng không được gán thêm '+ ='. Vì vậy, tôi không hiểu những gì bạn đang yêu cầu ở đây. – martineau
@martineau Xem nhận xét của tôi về câu trả lời của Rafe (hiện đã bị xóa). Tham khảo câu hỏi NumPy này: http://www.scipy.org/FAQ#head-1ed851e9aff803d41d3cded8657b2b15a888ebd5 – ACoolie