python - 使用另一个类 Python 从一个类打印对象
问题描述
我用python写了一个简单的面向对象的代码。在名为A
我使用的第一类__str__
中,我可以打印我的对象。在另一个类中,我将这些对象放入obj_list
. 我的问题是,为什么我可以用 class 打印我的对象A
,但是当我想打印时,因为print(my_object.obj_list)
我没有得到对象的字符串表示形式?
class A:
def __init__(self, name):
self.name = name
def __str__(self):
info = "My name is: " + self.name
return info
obj_1 = A("Mike")
obj_2 = A("Jon")
obj_3 = A("Steve")
print(obj_1, obj_2, obj_3)
class B:
def __init__(self):
self.obj_list = [obj_1, obj_2, obj_3]
my_object = B()
print(my_object.obj_list)
解决方案
您正在重写__str()__
方法,当某些东西试图将您的类转换为字符串 ig 时调用该方法print()
。当您创建对象列表时,它会将对象的引用放在列表中,仅此而已。如果您希望它们在任何情况下都转换为字符串,请更改:
def __str__(self):
到:
def __repr__(self):
推荐阅读
- r - 如何使用`sapply()`从类别中估算值?
- wildfly - 如何在wildfly上为hawtio成功登录后获取用户详细信息,以便可以按用户显示数据
- javascript - JS 对象的 Intl.Collator
- git - git丢失了一些分支,并且不显示目录
- odoo - 使用 --dev=all 启用开发者模式?
- javascript - Dynamo DB - 更新/删除
- listview - 单击按钮时在列表视图中传递数据
- linux - 使用 csplit 将大文件划分为具有确定名称的小文件
- computer-vision - 计算机视觉
- python - 通过拆分计算列表python中的总数