繁体   English   中英

如何将 urllib.request.urlopen() 与 add_hotkey() 一起使用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM