Ad un certo punto o in un altro potresti venire sopra le funzioni con molti argomenti. A volte ha senso combinare alcuni argomenti in super-argomenti. L'ho spesso fatto con i dicts, ma ora sto cercando modi migliori per farlo.
Mi piacerebbe girare ...
def do_something(ax, ay, az, bu, bv, c):
# Do something
... in ...
def do_something(a, b, c):
# Do something
... dove a
e b
contengono le loro sottozone.
Un modo per farlo è:
A = namedtuple('A', 'a, b, c')
a = A(ax, ay, az)
B = namedtuple('B', 'u, v')
b = B(bu, bv)
Tuttavia, questo sembra più semplice:
a = SimpleNamespace(x=ax, y=ay, z=az)
b = SimpleNamespace(u=bu, v=bv)
Qual è l'inconveniente? Il fatto che a
e b
non sono ben scritti? Non sono oggetti A e B?
(Btw, non preoccuparti dei nomi delle variabili, normalmente non utilizzo come nomi di variabili brevi.)