Bir noktada, birçok argümanla fonksiyonlar gelebilir. Bazen bazı argümanları süper argümanlarla birleştirmek mantıklıdır. Bunu sık sık dikte ile yaptım, ama şimdi daha iyi yapmanın yollarını arıyorum.
Dönmek istiyorum ...
def do_something(ax, ay, az, bu, bv, c):
# Do something
... içine ...
def do_something(a, b, c):
# Do something
... alt değişkenlerini nerede a
ve b
içerdiklerini
Bunu yapmanın bir yolu:
A = namedtuple('A', 'x, y, z')
a = A(ax, ay, az)
B = namedtuple('B', 'u, v')
b = B(bu, bv)
Ancak, bu daha basit görünüyor:
a = SimpleNamespace(x=ax, y=ay, z=az)
b = SimpleNamespace(u=bu, v=bv)
Dezavantajı nedir? Gerçeği a
ve b
iyi yazdınız değil mi? Onlar A ve B nesneleri değil mi?
(Btw, değişken adları hakkında endişelenme. Normalde kısa değişken adları olarak kullanmıyorum.)