AttributeError问题排查:'ActivitiesClient'对象无'base_url'属性
问题分析与解决方案
核心错误原因
你的代码存在两个关键问题:
- 构造函数拼写错误:类的初始化方法必须是
__init__,但你写成了__int__,导致初始化逻辑完全没执行,self.base_url和self.request根本没被定义,调用get_all_activities时自然会提示找不到base_url属性。 - 不必要的重复实例化:
get_all_activities方法里重新创建了APIRequest()实例,没有复用初始化时创建好的self.request,既浪费资源也破坏了代码一致性。
修正后的代码
import json from config import BASE_URL from utils.request import APIRequest class ActivitiesClient: def __init__(self): # 修正构造函数名称 super().__init__() self.base_url = BASE_URL + "Activities" self.request = APIRequest() def create_activity(self, payload): return self.request.post_request( self.base_url, json.dumps(payload)) def get_all_activities(self): # 使用初始化阶段创建的request实例,避免重复实例化 return self.request.get_request(self.base_url) print(ActivitiesClient().get_all_activities())
修正说明
- 将
__int__改为__init__,确保类实例化时自动执行初始化逻辑,正确生成self.base_url和self.request属性。 - 恢复
get_all_activities中注释的代码,复用已创建的self.request发起请求,保证代码逻辑的统一性和资源利用率。
内容的提问来源于stack exchange,提问作者qatesterbecomingprogrammer
相关产品推荐
相关产品推荐

