目录结构

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. MySql数据表设计,索引优化,SQL优化,其他数据库

    MySql数据表设计,索引优化,SQL优化,其他数据库 1.数据表设计 1.1数据类型 1.2避免空值 1.3text类型优化 2.索引优化 2.1索引分类 2.2索引优化 3.SQL优化 3.1分批 ...

  2. Centos7 yum 安装 oracle-rdbms-server-11gR2-pre

    Oracleyum官方网站 http://yum.oracle.com/ 一.下载yum源 根据自己需求下载相应的yum源 http://yum.oracle.com/getting-started. ...

  3. hibernate学习笔记(1)结构与基本数据类型

    一,概览 Hibernate负责从Java类到数据库表的映射,以及从Java数据类型到SQL数据类型的映射.另外还提​​供数据查询和检索功能.它可以显着减少在SQL和JDBC中手动处理数据的开发时间. ...

  4. eclipse下执行maprdeuc程序报错 java.lang.ClassNotFoundException

    最近遇到一个问题,不知怎么突然运行hadoop的map程序报错,困扰了我很久,现在来给大家分享分享.. 错误信息 2017-05-18 21:34:22,104 INFO [main] client. ...

  5. 获取java栈异常

    package com.loan.modules.extbiz.in.rabbitmq.util; import java.io.PrintWriter; import java.io.StringW ...

  6. nginx详解、反向代理、负载均衡和LNMP架构

    资源池 nginx官方网站:http://nginx.org/ nginx官方文档:http://nginx.org/en/docs/ 本章资源: 点击这里 资源提取码:u2jv 1.nginx简介 ...

  7. Aruba无线控制器常用操作

    初始配置 1.console到初始化的无线控制器上 Enter System name [Aruba7005]: Enter VLAN 1 interface IP address [172.16.0 ...

  8. 1.二层常用技术-STP

    1.STP定义: STP(Spanning Tree Protocol)是生成树协议的英文缩写.STP在IEEE 802.1D文档中定义,该协议的原理是按照树的结构来构造网络拓扑,消除网络中的环路,避 ...

  9. 基于efcore的分表组件开源

    ShardingCore ShardingCore 是一个支持efcore 2.x 3.x 5.x的一个对于数据库分表的一个简易扩展, 目前该库暂未支持分库(未来会支持),仅支持分表,该项目的理念是让 ...

  10. 设计模式(四)——Java抽象工厂模式

    抽象工厂模式 1 基本介绍 1) 抽象工厂模式:定义了一个 interface 用于创建相关或有依赖关系的对象簇,而无需指明具体的类 2) 抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合. 3) ...