Saya memiliki fungsi Python yang membutuhkan beberapa argumen. Beberapa argumen ini dapat dihilangkan dalam beberapa skenario.
def some_function (self, a, b, c, d = None, e = None, f = None, g = None, h = None):
#code
Argumen d
melalui h
adalah string yang masing-masing memiliki makna berbeda. Penting bahwa saya dapat memilih parameter opsional mana yang akan lulus dalam kombinasi apa pun. Misalnya,, (a, b, C, d, e)
atau (a, b, C, g, h)
, atau (a, b, C, d, e, f
, atau semuanya (ini adalah pilihan saya).
Akan lebih bagus jika saya bisa membebani fungsinya - tetapi saya membaca bahwa Python tidak mendukung overloading. Saya mencoba untuk memasukkan beberapa argumen int yang diperlukan dalam daftar - dan mendapatkan kesalahan ketidakcocokan argumen.
Saat ini saya mengirim string kosong untuk menggantikan beberapa argumen pertama yang hilang sebagai placeholder. Saya ingin dapat memanggil fungsi hanya menggunakan nilai aktual.
Apakah ada cara untuk melakukan ini? Bisakah saya melewati daftar alih-alih daftar argumen?
Sekarang prototipe menggunakan ctypes terlihat seperti:
_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]