You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python报'Class object has no attribute 'get''自定义randomuser类问题求解

问题根源

.get()是Python字典类型的专属内置方法,你当前user_list中存储的是自定义randomuser类的实例对象,并非字典,自然不包含get方法,才会触发属性报错。

修复方案(按推荐优先级排序)
  • 方案1:直接访问类实例的dob属性(最符合OOP设计逻辑)
    把排序代码行替换为:
    user_list.sort(key=lambda x: x.dob)
    
    你在类初始化时已经把出生日期赋值给了实例的dob属性,直接访问即可,不需要绕字典方法。
  • 方案2:调用类内部存储的user_dict字典的get方法
    如果你希望保留get的调用写法,也可以访问类里预存的字典属性:
    user_list.sort(key=lambda x: x.user_dict.get('dob'))
    
  • 方案3:给自定义类添加get方法
    如果需要让自定义类兼容字典的get调用逻辑,可以在randomuser类中补充方法:
    def get(self, key, default=None):
        return self.user_dict.get(key, default)
    
额外优化建议

Python类名推荐遵循PEP8规范使用大驼峰命名法,把randomuser改为RandomUser更符合行业通用写法,可读性更好。

内容的提问来源于stack exchange,提问作者nablanco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 14:27:00