django中models里面__str__有什么作用?

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

<__main__.TestClass object at 0x10f1e5670>

即这个对象的所属类和内存地址。
在这里插入图片描述

# 一般情况
class TestClass:
    def __init__(self):
        self.name = 'paomo'
t = TestClass()
print(t)
# <__main__.TestClass object at 0x10f1e5670>

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

# 改写 __str__ 方法
class TestClass:
    def __init__(self):
        self.name = 'paomo'

    def __str__(self):
        return self.name
t = TestClass()
print(t)

聚合:

# 一般情况
class TestClass:
    def __init__(self):
        self.name = 'paomo'
t = TestClass()
print(t)
# <__main__.TestClass object at 0x10f1e5670>


# 改写 __str__ 方法
class TestClass:
    def __init__(self):
        self.name = 'paomo'

    def __str__(self):
        return self.name
t = TestClass()
print(t)
AI悦创·创造不同!
AI悦创 » django中models里面__str__有什么作用?

发表评论