python 通用repr方法的重写方式以及 class的__dict__ 作用

repr 方法的意义

相当于 Java 中对对象的构造,toString 方法,可以格式化的输出当前对象内的所有属性以及属性对应的值,但不同的是 repr 要求尽可能输出的字符串结果要可以被 eval() 函数直接解析并执行成功从而还原此对象,主要也是用于辅助理解代码,但并不强制要求满足此要求,主要是还是用于理解某一个对象的定义。

通用的重写方法

python 复制代码
    def __repr__(self) -> str:
        class_name = self.__class__.__name__
        attrs_repr = ',\n\t'.join(f"{attr_name}={repr(value)}"
                               for attr_name, value in self.__dict__.items()
                               if attr_name not in ['_internal_attr', '_private_attr']  # 可选:排除某些属性
                               and not callable(value))  # 可选:排除方法
        return f"{class_name}(\n\t{attrs_repr}\n)"

这里的格式化字符可以自行调整 注意,这里我排除了某些属性,如果也需要可以去除如下限制

python 复制代码
if attr_name not in ['_internal_attr', '_private_attr']  # 可选:排除某些属性

上面class的__dict__作用

用于获取当前类下的所有属性的字典值,以此来完成成员属性的遍历

相关推荐
Gkoob6 分钟前
Vue3+Three.js 打造实时设备状态 3D 可视化面板
开发语言·javascript·3d
m0_716765237 分钟前
C++巩固案例--通讯录管理系统详解
java·开发语言·c++·经验分享·学习·青少年编程·visual studio
nimadan1212 分钟前
手机制作AI漫剧APP2025推荐,高效便捷创作体验
人工智能·python·智能手机
kronos.荒15 分钟前
柱状图中的最大矩形(python)
python·单调栈
jf加菲猫15 分钟前
第10章 数据处理
xml·开发语言·数据库·c++·qt·ui
学而要时习16 分钟前
强化学习:从“试错进化“到“推理革命
c语言·人工智能·python·语言模型
June bug16 分钟前
(Mac)docling-mcp 的依赖解析器找不到匹配的 torch 安装包
经验分享·python·macos
小陈工16 分钟前
2026年4月1日技术资讯洞察:AI芯片革命、数据库智能化与云原生演进
前端·数据库·人工智能·git·python·云原生·开源
芜湖xin16 分钟前
【解决Error】pip安装Flask失败
python·flask·pip
m0_7471245316 分钟前
LangChain 嵌入向量详解
python·ai·langchain