我有一个Python函数,它接受几个参数.在某些情况下,可以忽略其中一些参数.
def some_function (self, a, b, c, d = None, e = None, f = None, g = None, h = None):
#code
参数d
到h
是字符串,每个字符串都有不同的含义.重要的是,我可以 Select 在任何组合中传递哪些可选参数.例如,(a, b, C, d, e)
、(a, b, C, g, h)
、(a, b, C, d, e, f
或全部(这些是我的 Select ).
如果我能重载函数就太好了——但我读到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]