目录结构
2.1.当使用print打印一个类被实例化后生成的对象的时候,若类里有定义了【__str__】特殊方法,是打印出这样的数据:【__str__】特殊方法的返回值
2.2.当使用print打印一个类被实例化后生成的对象的时候,若将类里的【__str__】特殊方法注释之后,是打印出这样的数据:对象是由哪一个类创建的对象信息以及在内存中的内存地址
1.前言
我们在django里创建一个模型类时经常在模型类里使用这个【__str__】特殊方法,但刚接触这个特殊方法的人肯定都理解不了这个特殊方法能实现什么作用。
所以我们必须知道这个特殊方法【__str__】如何使用。
特殊方法【__str__】的相关知识点:
①.【__str__】是python3里的其中一个特殊方法。
②.【__str__】特殊方法一般是用于返回自己定义的返回值(返回值默认是对象的描述)。
③.【__str__】特殊方法的返回值的数据类型只能为字符串。
2.【__str__】特殊方法的具体使用
2.1.当使用print打印一个类被实例化后生成的对象的时候,若类里有定义了【__str__】特殊方法,是打印出这样的数据:【__str__】特殊方法的返回值
2.1.1.首先,编写这些代码内容
class Person: """ 定义一个类Person,表示一个人""" def __init__(self,name,weight): self.name = name self.weight = weight def __str__(self): return "我的名字叫:%s;体重是:%skg;" % (self.name,self.weight)
2.1.2.接着,执行这些代码内容
# 创建2个对象 xiaoming = Person("小明",56) xiaomei = Person("小美",44) # 打印这2个对象 print(xiaoming) print(xiaomei)
2.1.3.接着,看打印日志
我的名字叫:小明;体重是:56kg;
我的名字叫:小美;体重是:44kg;
2.2.当使用print打印一个类被实例化后生成的对象的时候,若将类里的【__str__】特殊方法注释之后,是打印出这样的数据:对象是由哪一个类创建的对象信息以及在内存中的内存地址
细节:
①.每个对象分配的内存地址都是唯一的,所以我们才总说对象是唯一的;
②.当程序进程都结束后,一个类被重新实例化后生成的对象的内存地址是新的内存地址;
2.2.1.首先,编写这些代码内容
class Person: """ 定义一个类Person,表示一个人""" def __init__(self,name,weight): self.name = name self.weight = weight # def __str__(self): # return "我的名字叫:%s;体重是:%skg;" % (self.name,self.weight)
2.2.2.接着,执行这些代码内容
# 创建2个对象 xiaoming = Person("小明",56) xiaomei = Person("小美",44) # 打印这2个对象 print(xiaoming) print(xiaomei)
2.2.3.接着,看打印日志
<__main__.Person object at 0x0000000001E498C8> <__main__.Person object at 0x0000000001E49948>
3.相关学习资料
其他关于特殊方法【__str__】的知识点学习,可以查看这篇文章:https://www.runoob.com/note/41154