Tôi có một vấn đề đơn giản trong Python rất lạ.Biến sao chép thay đổi ban đầu?
def estExt(matriz,erro):
# (1) Determinar o vector X das soluções
print ("Matrix after:");
print(matriz);
aux=matriz;
x=solucoes(aux); # IF aux is a copy of matrix, why the matrix is changed??
print ("Matrix before: ");
print(matriz)
...
Như bạn thấy bên dưới, ma trận matriz
được thay đổi mặc dù thực tế là aux
là một trong những bị thay đổi bởi các chức năng solucoes()
.
Matrix trước:
[[7, 8, 9, 24], [8, 9, 10, 27], [9, 10, 8, 27]]
Matrix sau:
[[7, 8, 9, 24], [0.0, -0.14285714285714235, -0.2857142857142847, -0.42857142857142705], [0.0, 0.0, -3.0, -3.0000000000000018]]
Xin chào, cảm ơn câu trả lời của bạn =) Nhưng tôi có một câu hỏi khác xem xét thực tế này: nếu b = 1 và a = b, nếu chúng ta thay đổi a = 3, b không bị thay đổi trong python. Tại sao? Thanks =) –
Vì bạn đang thay đổi 'a' để trỏ đến một đối tượng khác (số nguyên' 3'), nhưng không thay đổi 'b', vì vậy nó vẫn trỏ đến' 1'. – kindall