Khi đọc profile.py
thư viện chuẩn python, tôi đã xem câu lệnh gán sys.argv[:] = args
, được sử dụng để sửa đổi sys.argv
để làm cho chương trình được lược tả xem các đối số dòng lệnh chính xác. Tôi hiểu rằng điều này khác với sys.argv = args[:]
trong các hoạt động thực tế, nhưng có hiệu lực chúng trông giống như tôi. Có tình huống nào khi người ta muốn sử dụng cái này chứ không phải cái kia? Và là a[:] = b
một thành ngữ python phổ biến?Chỉ định cho so với slice
CẬP NHẬT: trong trường hợp cụ thể này, tại sao một người lại chọn người kia? (Nguồn có thể được tìm thấy trong main
chức năng của profile.py
)
Cảm ơn bạn, tôi nhận ra rằng điều này làm cho một sự khác biệt nếu có tài liệu tham khảo khác cho 'a' –
Có thể hữu ích để cung cấp cho một ví dụ. Nếu 'x = [1, 2, 3]', và 'a = x' (vì vậy chúng tham chiếu cùng một danh sách), làm' a = b [:] 'thay thế _reference_ trong' a' bằng một bản sao của 'b '; 'x' không thay đổi. Mặt khác, 'a [:] = b' thay thế _contents_ của' a' (tham chiếu không đổi) với các giá trị từ 'b', có nghĩa là' x' cũng được sửa đổi; liên kết tham chiếu chưa bao giờ bị hỏng. – ShadowRanger
Tôi đã chỉnh sửa để thêm các chi tiết khác. Nhưng một ví dụ nên là một điều tốt. Tôi sẽ thêm nó. –