Tôi vừa mới cải thiện vùng phủ sóng thử nghiệm cho một library có để hỗ trợ lát và tôi đã nhận thấy rằng lát có thể chứa các loại phi thể thiếu:Tại sao các loại nội trang không tách rời được cho phép trong các lát trăn?
>>> slice(1, "2", 3.0)
slice(1, '2', 3.0)
>>> sl = slice(1, "2", 3.0)
>>> [1,2,3][sl]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: slice indices must be integers or None or have an __index__ method
này chỉ có thể là nền tĩnh đánh máy của tôi nhưng có vẻ như lạ với tôi rằng các loại nội trang mà không có __index__
có thể được chuyển vào đây mà không cần TypeError
. Tại sao cái này rất? Tôi có thể giả định rằng các loại tùy ý được cho phép để hỗ trợ nhập vịt cho các loại thực hiện __index__
? Việc thiếu kiểm tra loại có phải do lý do hiệu suất đối với các trường hợp thường được sử dụng nhất không?
Trước khi PEP 357 là lát trong ví dụ không hợp lệ?
Cú pháp cú pháp với phao có thể mô tả hiệu quả một hộp giới hạn trong không gian n chiều, có thể thuận tiện trong một số trường hợp. Một loại tùy chỉnh có thể chấp nhận các lát như vậy. – Kevin
Đó là một trường hợp sử dụng thực sự thú vị cho một phao mà tôi đã không nghĩ đến. Tại sao dây được phép mặc dù? – shuttle87
Bạn cũng có thể sử dụng [Dấu ba chấm] (http://stackoverflow.com/questions/772124/what-does-the-python-ellipsis-object-do) trong lát. –