str 是 Python 的 object 基类的一个方法,也就是说 Python 所有的类都有,当然 django 的 modle 类也有,我们平常创建一个类的对象,print 这个对象时一般会是

    1. <__main__.TestClass object at 0x10f1e5670>

    即这个对象的所属类和内存地址。
    image.png

    1. # 一般情况
    2. class TestClass:
    3. def __init__(self):
    4. self.name = 'paomo'
    5. t = TestClass()
    6. print(t)
    7. # <__main__.TestClass object at 0x10f1e5670>

    我们改写类中的 str 方法后可以在 print 时得到想要的易于人阅读的对象的信息,以下是实例:

    1. # 改写 __str__ 方法
    2. class TestClass:
    3. def __init__(self):
    4. self.name = 'paomo'
    5. def __str__(self):
    6. return self.name
    7. t = TestClass()
    8. print(t)

    聚合:

    1. # 一般情况
    2. class TestClass:
    3. def __init__(self):
    4. self.name = 'paomo'
    5. t = TestClass()
    6. print(t)
    7. # <__main__.TestClass object at 0x10f1e5670>
    8. # 改写 __str__ 方法
    9. class TestClass:
    10. def __init__(self):
    11. self.name = 'paomo'
    12. def __str__(self):
    13. return self.name
    14. t = TestClass()
    15. print(t)