[英]How do use urllib.request.urlopen() with add_hotkey()?
add_hotkey(random_macro_list[i], lambda: request.urlopen, args=(choice(RANDOM_LIST)))
我运行这行代码,但每次按下热键时都会引发这些错误:
Traceback (most recent call last):
File "C:\Users\Jonathan Van-Doninck\AppData\Local\Programs\Python\Python38-32\lib\threading.py", line 932, in _bootstrap_inner
self.run()
File "C:\Users\Jonathan Van-Doninck\AppData\Local\Programs\Python\Python38-32\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\Jonathan Van-Doninck\Desktop\Programing\Programs\totallynotavirus\venv\lib\site-packages\keyboard\_generic.py", line 58, in process
if self.pre_process_event(event):
File "C:\Users\Jonathan Van-Doninck\Desktop\Programing\Programs\totallynotavirus\venv\lib\site-packages\keyboard\__init__.py", line 218, in pre_process_event
callback(event)
File "C:\Users\Jonathan Van-Doninck\Desktop\Programing\Programs\totallynotavirus\venv\lib\site-packages\keyboard\__init__.py", line 649, in <lambda>
handler = lambda e: (event_type == KEY_DOWN and e.event_type == KEY_UP and e.scan_code in _logically_pressed_keys) or (event_type == e.event_type and callback())
File "C:\Users\Jonathan Van-Doninck\Desktop\Programing\Programs\totallynotavirus\venv\lib\site-packages\keyboard\__init__.py", line 637, in <lambda>
callback = lambda callback=callback: callback(*args)
TypeError: <lambda>() takes 0 positional arguments but 43 were given
有人知道我做错了什么吗?
您提供args=(choice(RANDOM_LIST))
以便keyboard
尝试使用这些 arguments 调用您的 lambda。 同样使用方括号不足以创建元组,在这种情况下,它会获取长度可能为 43 的字符串,并尝试将每个字符作为不同的参数传递。 而且我在任何地方都没有看到对 urlopen 的调用。
你可能想写这样的东西:
add_hotkey(random_macro_list[i], lambda url: request.urlopen(url), args=(choice(RANDOM_LIST),))
注意逗号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.