いくつかの引数を取る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]
2
関連:**(ダブルスター/アスタリスク)および*(スター/アスタリスク)はパラメーターに対して何をしますか?
—
Stevoisiak 2017年