python - 如何使类默认返回值成为字典
问题描述
我希望标题对我的目的来说足够清楚,老实说我没有尝试太多,因为我真的不知道去哪里,我什至不确定这是否完全可能。我知道它可以覆盖__str__
和__int__
返回这两种类型的值。我确定您在问“为什么没有类函数来返回您想要的东西”,并且确定这是一个合理的问题,但我想要一种更简洁的方法来做到这一点。
我已经搜索了其他可能有帮助的类似问题和示例,但没有一个真正符合我的意图。我能得到的最接近的是我在下面尝试覆盖__new__
和的示例__repr__
。
class student:
def __init__(self, name, age):
self.info = {'name': name, 'age': age}
def __new__(self, name, age):
return self.info
def __repr__(self, name, age):
return self.info
student_data = student('Rob', 18)
print(student_data)
提前致谢
解决方案
你很亲密。两者都__str__
必须__repr__
返回一个字符串。print
将在内部调用您的对象的__str__
表示。因此,只需让您的方法返回(IOW )__str__
的字符串表示形式。self.info
str(self.info)
class Student:
def __init__(self, name, age):
self.info = {'name': name, 'age': age}
def __repr__(self):
return str(self.info)
def __str__(self):
return self.__repr__()
student_data = Student('Rob', 18)
print(student_data)
# {'name': 'Rob', 'age': 18}
推荐阅读
- python - FileNotFoundError: [Errno 2] No such file or directory for different opening types
- python - 小马如何设置栏目评论
- css - 如何更改 .sub-head 的 z-index 以显示在悬停动画的 .navbar-fixed 下?
- python - Django:除非删除父模型,否则防止删除子模型
- reactjs - 如何使用提供的操作通过模拟 Axios 来编写一个笑话测试?
- makefile - 在不使用目标的情况下,如何防止目标的先决条件扩展?
- android - Android:如何处理 WorkManager Rx 的结果?
- python - 如何将包含日期的数据框转换为具有正确日期格式的列表并保存在 csv 文件中
- javascript - HTML5 视频 - 自动全屏显示
- java - 试图在我的集合中获取现有文档,但它返回 DocumentSnapshot 为空。有什么线索吗?