Python多重继承失效:Main类仅获Scraper属性,无法获取SpotifyConnect的sp
问题诊断与解决方案
核心原因
你的Main类采用多继承(同时继承Scraper和SpotifyConnect),但Python默认只会调用第一个父类(即Scraper)的__init__方法。如果SpotifyConnect类的self.sp是在自身__init__方法中初始化的,那这部分逻辑根本没执行,自然会触发AttributeError。
解决方法
在Main类的__init__方法里,显式调用两个父类的__init__,确保双方的初始化逻辑都能运行:
class Main(Scraper, SpotifyConnect): def __init__(self, date): # 调用Scraper的初始化逻辑,传入所需参数 Scraper.__init__(self, date) # 调用SpotifyConnect的初始化逻辑,根据实际需求传参 SpotifyConnect.__init__(self) # 此处可编写Main类自身的初始化逻辑
额外检查点
- 确认
SpotifyConnect的__init__方法里确实完成了self.sp的赋值(比如Spotify认证后返回的客户端对象),没有遗漏关键代码 - 如果
SpotifyConnect的__init__需要参数(如client_id、client_secret等),调用时要正确传入对应参数
内容的提问来源于stack exchange,提问作者NickTahmer
相关产品推荐
相关产品推荐

