У той чи інший момент ви можете натрапити на функції з великою кількістю аргументів. Іноді є сенс поєднувати деякі аргументи в супер-аргументи. Я часто робив це за допомогою диктів, але зараз я розглядаю кращі способи зробити це.
Я хотів би звернутися ...
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 об’єкти?
(Btw, не хвилюйтеся про імена змінних. Я зазвичай не використовую як короткі імена змінних.)