Это должно быть isinstance(key, slice)
, а не isinstance(key, "slice")
.
Кроме того, вам не следует звонить __getitem__
напрямую - используйте обозначение элемента []
.
Для себя я бы использовал бы метод isinstance(key, slice)
, если бы мне нужно было различить - slice
- это особенная вещь, а не то, что легко можно заменить другим типом (подумайте - если self.wrapped_list
является list
, slice
является единственным типом объекта, который будет возвращать не элемент или ошибку).
Так что я бы закончил так:
sliced_list = self.wrapped_list[key]
if isinstance(key, slice):
return MyCustomSequenceType(sliced_list, boolean_flag)
return sliced_list
Подумайте далее, нужно ли вам специально обращаться с ломтиками; Я понятия не имею, каково ваше дело, но при принятии архитектурного решения, которое будет влиять на вещи позже, как правило, это хорошая идея, чтобы рассмотреть несколько различных способов сделать то же самое, оценить их все и выбрать лучший (не то, что Я делаю это много сам - я, как правило, просто тороплюсь, внедряю и исправляю потом ...).