使用另一类Python从一个类打印对象

时间:2019-05-07 16:11:21

标签: python oop

我用python编写了一个简单的面向对象的代码。在名为A的第一堂课中,我使用了__str__,以便可以打印对象。在另一个类中,我将这些对象放在obj_list中。我的问题是,为什么我可以使用类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)

1 个答案:

答案 0 :(得分:1)

您正在覆盖__str()__方法,该方法在尝试将您的类转换为字符串(例如, print()。创建对象列表时,它将对象的引用放入列表中,仅此而已。如果您希望它们在任何情况下都转换为字符串,请更改:

def __str__(self):

收件人:

def __repr__(self):