无法将类变量赋给给定的值

2024-09-29 17:22:14 发布

您现在位置:Python中文网/ 问答频道 /正文

代码:

class YouTubeDownloader:
    ID=0
    Title =" "
    Description= " "
    PublishedAt =" "
    def IDFetch(self):
        IDRequest = "https://www.googleapis.com/youtube/v3/videos?id="+self+"&key="+APIKey+"&part=snippet"
        if len(list(self))==11:
            Data =requests.request(url=IDRequest,method="Get")
            Data = Data.json()
            ID= Data['items'][0]['id']
            self.ID = ID
        else:
            print("Wrong ID")

但是,我不能分配自我识别码对于给定的值ID,它给出了以下问题:

Traceback (most recent call last):
  File "/home/x/x/red/simple.py", line 78, in <module>
    Data =YouTubeDownloader.IDFetch("jB8Vp1tgdbo")
  File "/home/x/x/red/simple.py", line 21, in IDFetch
    self.ID = ID
AttributeError: 'str' object has no attribute 'ID'

Tags: 代码inpyselfidhomedataline
2条回答

而不是:

self.ID = ID

地点:

YouTubeDownloader.ID = ID

您正在以静态方法调用IDFetch

Data =YouTubeDownloader.IDFetch("jB8Vp1tgdbo")

相反,您必须在调用方法之前创建YouTubeDownloader的实例:

class YouTubeDownloader:
    ID=0
    Title =" "
    Description= " "
    PublishedAt =" "
    def IDFetch(self, video_id):
        IDRequest = "https://www.googleapis.com/youtube/v3/videos?id="+video_id+"&key="+APIKey+"&part=snippet"
        if len(list(video_id))==11:
            Data =requests.request(url=IDRequest,method="Get")
            Data = Data.json()
            ID= Data['items'][0]['id']
            self.ID = ID
        else:
            print("Wrong ID")

downloader = YouTubeDownloader()
data = downloader.IDFetch("jB8Vp1tgdbo")

相关问题 更多 >

    热门问题