En un momento u otro, puede encontrar funciones con muchos argumentos. A veces tiene sentido combinar algunos de los argumentos en super-argumentos. A menudo he hecho esto con dictos, pero ahora estoy buscando mejores formas de hacerlo.
Me gustaría girar ...
def do_something(ax, ay, az, bu, bv, c):
# Do something
... dentro ...
def do_something(a, b, c):
# Do something
... donde a
y b
contienen sus subvariaciones.
Una forma de hacer esto es hacer:
A = namedtuple('A', 'x, y, z')
a = A(ax, ay, az)
B = namedtuple('B', 'u, v')
b = B(bu, bv)
Sin embargo, esto parece más simple:
a = SimpleNamespace(x=ax, y=ay, z=az)
b = SimpleNamespace(u=bu, v=bv)
¿Cuál es el inconveniente? El hecho de que a
y b
no están bien escritos? ¿No son objetos A y B?
(Por cierto, no te preocupes por los nombres de las variables. Normalmente no uso como nombres cortos de variables).