Tôi đọc một số điều về slice trong python3. Sau đó, tôi đã viết một chương trình, đã cố gắng triển khai getitem (tự, slice). Mã dưới đây:[python]: cách triển khai slice trong python3?
class NewList:
def __init__(self, lst):
print('new list')
self._list = lst
def __getitem__(self, x):
if type(x) is slice:
return [ self._list[n] for n in range(x.start, x.stop, x.step) ] #error?
else:
return self._list[x]
...
nl1 = NewList([1,2,3,4,5])
nl1[1:3] #error occurs
sau đó tôi phát hiện ra x.step là Không, làm cho phạm vi tăng ngoại lệ. Vì vậy, tôi nên triển khai phương thức getitem như thế nào?
Ngoài ra, lớp 'NewList' của bạn nên được kế thừa từ' danh sách' ... – JBernardo
@JBernardo --Bạn có nghĩa là tôi nên tránh sử dụng các đối tượng slice một cách rõ ràng không? – Alcott