从导入的 python 包中调用函数的正确方法?
Correct way to call function from imported python package?
尝试从youtube-dl
包中导入Youtube签名解密功能但无法使用,如下代码所示:
import youtube_dl.extractor.youtube
video_id = 'HRfNqYoO9EU'
player_url="https://www.youtube.com/yts/jsbin/player_ias-vfl49f_g4/en_US/base.js"
unsig= 'ALgxI2wwRgIhAN3cG9UXPZSyZcwx2fTOFvbKT_5CAb475HUHuTjSjOw-AiEAjaY1JtcKuHMQkHyCt5cKGBqazj7mpR4EQ1nwGYvhkEc='
signature = youtube_dl.extractor.youtube._decrypt_signature(unsig, video_id, player_url)
print signature
尝试了多种导入和引用模块的方法,但 none 有效:(
以上代码错误:AttributeError: 'module' object has no attribute '_decrypt_signature'
你指的是classYoutubeIE
的一个方法
您必须导入它,创建一个实例然后调用它,但作为@rdas statet,以 _ 开头的方法通常是内部方法,可能会在包的更高版本中发生变化,也可能不安全打电话。
但是如果没有别的办法,可以从这段代码入手:
from youtube_dl.extractor.youtube import YoutubeIE
import youtube_dl.extractor.youtube as yt
help(yt)
yt=YoutubeIE()
video_id = 'HRfNqYoO9EU'
player_url="https://www.youtube.com/yts/jsbin/player_ias-vfl49f_g4/en_US/base.js"
unsig= 'ALgxI2wwRgIhAN3cG9UXPZSyZcwx2fTOFvbKT_5CAb475HUHuTjSjOw-AiEAjaY1JtcKuHMQkHyCt5cKGBqazj7mpR4EQ1nwGYvhkEc='
signature = yt._decrypt_signature(unsig, video_id, player_url)
print(signature)
您可以这样调用该方法,但是代码失败,因为“_downloader”实例变量设置不正确。所以通常它会调用方法,但你必须弄清楚如何正确初始化对象。 init() 方法的注释表明,您可以直接在 yt=YoutubeIE().
行中传递下载器对象
尝试从youtube-dl
包中导入Youtube签名解密功能但无法使用,如下代码所示:
import youtube_dl.extractor.youtube
video_id = 'HRfNqYoO9EU'
player_url="https://www.youtube.com/yts/jsbin/player_ias-vfl49f_g4/en_US/base.js"
unsig= 'ALgxI2wwRgIhAN3cG9UXPZSyZcwx2fTOFvbKT_5CAb475HUHuTjSjOw-AiEAjaY1JtcKuHMQkHyCt5cKGBqazj7mpR4EQ1nwGYvhkEc='
signature = youtube_dl.extractor.youtube._decrypt_signature(unsig, video_id, player_url)
print signature
尝试了多种导入和引用模块的方法,但 none 有效:(
以上代码错误:AttributeError: 'module' object has no attribute '_decrypt_signature'
你指的是classYoutubeIE
的一个方法您必须导入它,创建一个实例然后调用它,但作为@rdas statet,以 _ 开头的方法通常是内部方法,可能会在包的更高版本中发生变化,也可能不安全打电话。 但是如果没有别的办法,可以从这段代码入手:
from youtube_dl.extractor.youtube import YoutubeIE
import youtube_dl.extractor.youtube as yt
help(yt)
yt=YoutubeIE()
video_id = 'HRfNqYoO9EU'
player_url="https://www.youtube.com/yts/jsbin/player_ias-vfl49f_g4/en_US/base.js"
unsig= 'ALgxI2wwRgIhAN3cG9UXPZSyZcwx2fTOFvbKT_5CAb475HUHuTjSjOw-AiEAjaY1JtcKuHMQkHyCt5cKGBqazj7mpR4EQ1nwGYvhkEc='
signature = yt._decrypt_signature(unsig, video_id, player_url)
print(signature)
您可以这样调用该方法,但是代码失败,因为“_downloader”实例变量设置不正确。所以通常它会调用方法,但你必须弄清楚如何正确初始化对象。 init() 方法的注释表明,您可以直接在 yt=YoutubeIE().
行中传递下载器对象