ja bardzo często pisania kodu, takich jak:Banalne funktory
sorted(some_dict.items(), key=lambda x: x[1])
sorted(list_of_dicts, key=lambda x: x['age'])
map(lambda x: x.name, rows)
gdzie chciałbym napisać:
sorted(some_dict.items(), key=idx_f(1))
sorted(list_of_dicts, key=idx_f('name'))
map(attr_f('name'), rows)
używając:
def attr_f(field):
return lambda x: getattr(x, field)
def idx_f(field):
return lambda x: x[field]
Czy funktor-twórcy jak idx_f i attr_f w python, i czy są one bardziej przejrzyste, gdy są używane niż lambda?
świetnie! Pamiętam, że korzystałem z nich w ten sposób, ale nie mogłem ich znaleźć w Google. – Herbert