AI悦创·Blog

教育理念:浅者觉得其浅,深者觉得其深。

0%

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

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

1
<__main__.TestClass object at 0x10f1e5670>

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

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

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

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

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

聚合:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 一般情况
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)
坚持原创技术分享,您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道