Я продолжал писать довольно длинный однострочный код (под влиянием оболочки), например:
def parseranges(ranges, n):
"""
Translate ":2,4:6,9:" to "0 1 3 4 5 8 9...n-1"
== === == === ===== =========
"""
def torange(x, n):
if len(x)==1:
(x0, ) = x
s = 1 if x0=='' else int(x0)
e = n if x0=='' else s
elif len(x)==2:
(x0, x1) = x
s = 1 if x0=='' else int(x0)
e = n if x1=='' else int(x1)
else:
raise ValueError
return range(s-1, e)
return sorted(reduce(lambda x, y:x.union(set(y)), map(lambda x:torange(x, n), map(lambda x:x.split(':'), ranges.split(','))), set()))
Я чувствовал себя хорошо, когда писал его.
Я думал, что длинный однострочныйкод - это стиль функционального программирования.
Но через несколько часов мне стало плохо из-за этого.
Боюсь, меня будут критиковать люди, которые могут его поддерживать.
К сожалению, я получилЯ писал такие однострочные.
Я действительно хочу узнать мнение других.
Пожалуйста, дайте мне несколько советов.Спасибо