目录结构

1.前言

2.【__str__】特殊方法的具体使用

2.1.当使用print打印一个类被实例化后生成的对象的时候,若类里有定义了【__str__】特殊方法,是打印出这样的数据:【__str__】特殊方法的返回值

2.1.1.首先,编写这些代码内容

2.1.2.接着,执行这些代码内容

2.1.3.接着,看打印日志

2.2.当使用print打印一个类被实例化后生成的对象的时候,若将类里的【__str__】特殊方法注释之后,是打印出这样的数据:对象是由哪一个类创建的对象信息以及在内存中的内存地址

2.2.1.首先,编写这些代码内容

2.2.2.接着,执行这些代码内容

2.2.3.接着,看打印日志

3.相关学习资料

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

django学习-20.python3中的特殊方法【__str__】的作用的更多相关文章

  1. Django Admin 在内联中覆盖保存方法(admin.TabularInline)

    一  使用环境 开发系统: windows IDE: pycharm 数据库: msyql,navicat 编程语言: python3.7  (Windows x86-64 executable in ...

  2. django中将views.py中的python方法传递给html模板文件

    常规的模板渲染 from django.db import models # Create your models here. class ArticalType(models.Model): cap ...

  3. Python3中的__new__方法以及继承不可变类型类的问题

    最近在学到Python中的__new__方法时被弄懵逼了,一开始实在是很难理解,有很多地方想不通(本人强迫症).最近自己慢慢思索得出了能说服自己的理解: 说__new__方法之前要先提到__init_ ...

  4. 第8.14节 Python类中内置方法__str__详解

    一. object类内置方法__str__和函数str 类的内置方法__str__和内置函数str实际上实现的是同一功能,实际上str调用的就是__str__方法,只是调用方式不同,二者的调用语法如下 ...

  5. Django学习笔记--数据库中的单表操作----增删改查

    1.Django数据库中的增删改查 1.添加表和字段 # 创建的表的名字为app的名称拼接类名 class User(models.Model): # id字段 自增 是主键 id = models. ...

  6. Django 向数据表中添加字段方法

    在模型order中添加字段discount字段,并给予初始值0 方法: 先在models.py中修改模型 添加 discount = models.DecimalField(max_digits=8, ...

  7. django学习笔记--数据库中的多表操作

    1.Django数据库----多表的新增操作 1.一对一模式下新增 创建一个详情对象,把这个对象赋值给创建的新的user对象 author_detail = models.AuthorDetail.o ...

  8. servlet学习记录:Servlet中的service()方法

    Servlet的生存时间是由init,service,destory方法构成,这里分析一下service这个方法 Servlet接口中定义了一个service()方法,而我们一般是使用HttpServ ...

  9. Django学习路30_view中存在重复名时,取第一个满足条件的

    在 settings 中添加 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.con ...

随机推荐

  1. three.js cannon.js物理引擎之制作拥有物理特性的汽车

    今天郭先生说一说使用cannon.js的车辆辅助类让我们的汽车模型拥有物理特性.效果图如下,在线案例请点击博客原文. 下面我们说一下今天要使用的两个类,并简单的看看他们的物理意义 1. Raycast ...

  2. MySQL、SqlServer、Oracle 三种数据库的优缺点

    MySQL.SqlServer.Oracle 三种数据库的优缺点 一.MySQL 优点: 缺点: 二.SqlServer 优点: 缺点: 三.Oracle 优点: 缺点: 一.MySQL 优点: 体积 ...

  3. Docker --Dockerfile(制作镜像)

    Dockerfile Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 快速创建自定义的镜像 Dockerfile 常用指令 FROM 作用:指定基础镜像,Docke ...

  4. AQS简单理解入门---1

    这篇文章,我们来聊聊面试时一个比较有杀伤力的问题:聊聊你对AQS的理解? 之前有同学反馈,去互联网公司面试,面试官聊到并发时就问到了这个问题.当时那位同学内心估计受到了一万点伤害... 因为首先,很多 ...

  5. 《进击吧!Blazor!》第一章 4.数据交互

    <进击吧!Blazor!>是本人与张善友老师合作的Blazor零基础入门系列视频,此系列能让一个从未接触过Blazor的程序员掌握开发Blazor应用的能力. 视频地址:https://s ...

  6. C/C++函数与变量前面的标识符的作用

    ​​ 作者:良知犹存 转载授权以及围观->欢迎添加Wx:Allen-Iverson-me-LYN 缅怀逝者,向英雄致敬.愿山河无恙,国泰民安. 在用C/C++写代码的时候我们经常会使用一些标识符 ...

  7. Left join查询为空

    这两个查询,上面查询返回空,下面能正常返回记录 两个表结构: left join 没有匹配上得到的b.dates,b.game_id和b.uid都是null值,在按b.dates=20200317 a ...

  8. Codeforces Round #660 (Div. 2) A. Captain Flint and Crew Recruitment、Captain Flint and a Long Voyage

    题目链接:Captain Flint and Crew Recruitment 题意: t组输入,每一组输入一个n.这里我们说一下题目定义的近似质数概念: "如果可以将正整数x表示为p⋅q, ...

  9. hdu5360 Hiking

    Problem Description There are n soda conveniently labeled by 1,2,-,n. beta, their best friends, want ...

  10. Bing壁纸-20200417