An der einen oder anderen Stelle könnten Sie auf Funktionen mit vielen Argumenten stoßen. Manchmal ist es sinnvoll, einige der Argumente zu Superargumenten zu kombinieren. Ich habe das oft mit Diktaten gemacht, aber jetzt suche ich nach besseren Möglichkeiten, es zu tun.
Ich würde gerne drehen ...
def do_something(ax, ay, az, bu, bv, c):
# Do something
... in ...
def do_something(a, b, c):
# Do something
... wo a
und b
enthalten ihre Untervariationen.
Eine Möglichkeit, dies zu tun, besteht darin, Folgendes zu tun:
A = namedtuple('A', 'x, y, z')
a = A(ax, ay, az)
B = namedtuple('B', 'u, v')
b = B(bu, bv)
Dies scheint jedoch einfacher zu sein:
a = SimpleNamespace(x=ax, y=ay, z=az)
b = SimpleNamespace(u=bu, v=bv)
Was ist der Nachteil? Die Tatsache, dass a
und b
nicht gut getippt? Sie sind keine A- und B-Objekte?
(Übrigens, mach dir keine Sorgen um die Variablennamen. Ich verwende sie normalerweise nicht als kurze Variablennamen.)