如何调用带有可选参数和 *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)
如何调用我的函数
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)