ある時点で、多くの引数を持つ関数を見つけるかもしれません。いくつかの引数を組み合わせてスーパー引数にすることが理にかなっている場合があります。私はこれを口述筆記で頻繁に行ってきましたが、今はよりよい方法を検討しています。
回したい...
def do_something(ax, ay, az, bu, bv, c):
# Do something
...に...
def do_something(a, b, c):
# Do something
...場所a
とb
そのサブバリエーションを含みます。
これを行う1つの方法は、次のことです。
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オブジェクトではありませんか?
(ところで、変数名については心配しないでください。通常、短い変数名としては使用しません。)