Канонический (start, stop) в параметрах Python
Есть ли элегантный способ указать параметр, который инкапсулировал бы начало и конец среза как slice, но не содержал бы шага?
Сейчас я использую объявление как в модуле bisect, но я хотел бы что-то более лаконичное и не разделять lo и hi:
def find_left_lt(a, x, lo=0, hi=None, key=None):
Ответы (1 шт):
Автор решения: Stanislav Volodarskiy
→ Ссылка
Оформить в виде кортежа. Например:
def find_left_lt(a, x, slice=(0, None), key=None):
...
... = find_left_lt(a, x)
... = find_left_lt(a, x, slice=(42, None))
... = find_left_lt(a, x, slice=(42, 142))
Или опускать второе значение полностью:
def find_left_lt(a, x, slice=(0, ), key=None):
...
... = find_left_lt(a, x)
... = find_left_lt(a, x, slice=(42, ))
... = find_left_lt(a, x, slice=(42, 142))
Или допускать в качестве slice и числа и кортежи:
def find_left_lt(a, x, slice=0, key=None):
...
... = find_left_lt(a, x)
... = find_left_lt(a, x, slice=42)
... = find_left_lt(a, x, slice=(42, 142))