如何调用带有可选参数和 *args 参数的函数?

How do I call a function with an optional and an *args arguments?

如何调用我的函数

def press(clickLeft=False, *args):
    buttons = {'Enter': 0x0D, 'Ctrl': 0x11, 'a': 0x41,'c': 0x43, 'v': 0x56}
    codes = [buttons[b] for b in args]
    for b in codes:
        win32api.keybd_event(b, 0,0,0)
    if clickLeft:
        click()

如果我这样称呼它

press('Ctrl', clickLeft=True)

报错

TypeError: press() got multiple values for argument 'clickLeft'

pythononic 约定是参数位于关键字参数 (kwargs) 之前。因此,如果您将 args 移动到应该解决问题的 optional/keyword 参数之前:

def press(*args, clickLeft=False):
   pass

然后你按照你的建议调用它:

press('Ctrl', clickLeft=True)