複数の引数を取る Python 関数があります。これらの引数の一部は、シナリオによっては省略できます。
def some_function (self, a, b, c, d = None, e = None, f = None, g = None, h = None):
#code
d
~の引数h
は、それぞれ異なる意味を持つ文字列です。任意の組み合わせで渡すオプション パラメータを選択できることが重要です。たとえば、(a, b, C, d, e)
、または(a, b, C, g, h)
、または(a, b, C, d, e, f
、またはそれらすべて (これらは私の選択です)。
関数をオーバーロードできれば素晴らしいことですが、Python はオーバーロードをサポートしていないことを読みました。必要な int 引数のいくつかをリストに挿入しようとしましたが、引数の不一致エラーが発生しました。
現在、最初のいくつかの不足している引数の代わりに空の文字列をプレースホルダーとして送信しています。実際の値を使用して関数を呼び出せるようにしたいと考えています。
これを行う方法はありますか?引数リストの代わりにリストを渡すことはできますか?
現在、ctypes を使用したプロトタイプは次のようになっています。
_fdll.some_function.argtypes = [c_void_p, c_char_p, c_int, c_char_p, c_char_p, c_char_p, c_char_p, c_char_p]