В тот или иной момент вы можете встретить функции с множеством аргументов. Иногда имеет смысл объединить некоторые аргументы в супер-аргументы. Я часто делал это с помощью диктовок, но сейчас я смотрю на лучшие способы сделать это.
Я хотел бы включить ...
def do_something(ax, ay, az, bu, bv, c):
# Do something
... в ...
def do_something(a, b, c):
# Do something
... где a
и b
содержат свои подвариации.
Один из способов сделать это состоит в следующем:
A = namedtuple('A', 'x, y, z')
a = A(ax, ay, az)
B = namedtuple('B', 'u, v')
b = B(bu, bv)
Тем не менее, это кажется проще:
a = SimpleNamespace(x=ax, y=ay, z=az)
b = SimpleNamespace(u=bu, v=bv)
В чем недостаток? То, что так a
и b
не набрано? Они не объекты A и B?
(Кстати, не беспокойтесь об именах переменных. Обычно я не использую их как короткие имена.)