01/10/2018, 11:21
Điểm khác nhau giữa i = i + 1 và i += 1?
hi guys
mình có câu hỏi là trong python, lệnh i = i+ 1 và i += 1 có điểm gì khác nhau không nhỉ?
Bài liên quan
hi guys
mình có câu hỏi là trong python, lệnh i = i+ 1 và i += 1 có điểm gì khác nhau không nhỉ?
Có khác nhau: += nó call hàm
__iadd__
còn + thì call hàm__add__
cho nên phụ thuộc i là object gì mà giá trị có thể khác.Phép + sẽ tạo ra một giá trị mới sau đó gán lại vào biến cũ, += sẽ trực tiếp cộng vào biến i
Theo hiểu biết của em thì nó cũng tùy kiểu dữ liệu nữa. Hash object(immutable) hay là unhash object(mutable)
Ví dụ
Tiếp theo là
Riêng về cái đề bài hỏi thì em nghĩ là 2 cái same với nhau vì phương thức
__iadd__
không có trong hash object (immutable). Hai ví dụ trên là ví dụ minh họaĐể chắc chắn. Hãy test
Kết luận
(a = a + something) == (a += something)
,__iadd__
sẽ được thay thế bởi__add__
.__iadd__
. Mà có thì dùng thôi.Mình mới biết 2 kiểu đối tượng. Đó là list [ ] , dictionary { }, khai báo kiểu () thì là đối tượng gì nhỉ?
Bạn tham khảo link này. Tìm hiểu thêm cái này, bạn có thể biết thêm được phần unpacking and packing argument
https://docs.python.org/3/tutorial/datastructures.html#tuples-and-sequences