1.__str__

首先介绍__str__

class Students(object):
def __init__(self, *args):
self.names = args # def __str__(self):
#   return str(self.names)
# __repr__ = __str__
ss = Students('hyq','ysy')
ss >>><__main__.Students at 0x2075a779828>

打印类对象显示的是对象的内存地址,下面重构__repr__和__str__方法

再看:

class Students(object):
def __init__(self, *args):
self.names = argsdef __str__(self):
return str(self.names)
# def __repr__(self):
# return str(self.names)
ss = Students('hyq','ysy')
ss >>><__main__.Students at 0x2075a78a860>
class Students(object):
def __init__(self, *args):
self.names = args # def __str__(self):
# return str(self.names)
def __repr__(self):
return str(self.names)
ss = Students('hyq','ysy')
ss >>>('hyq', 'ysy')

可以看到,重构__repr__方法后,直接输出对象,能够按照__repr__中定义的格式进行显示;

而重构__str__方法后,直接输出对象,显示的是对象的内存地址,并不是__str__定义的格式

当然,用print都能够显示__repr__和__str__定义的格式

class Students(object):
def __init__(self, *args):
self.names = args # def __str__(self):
#   return str(self.names)
def __repr__(self):
return str(self.names)
ss = Students('hyq','ysy')
print(ss) >>>('hyq','ysy') ————————————————————————————————————————————分割线————————————————————————————————————
class Students(object):
def __init__(self, *args):
self.names = argsdef __str__(self):
return str(self.names)
# def __repr__(self):
# return str(self.names)
ss = Students('hyq','ysy')
print(ss) >>>('hyq','ysy')

注意:

在代码中一般写成:

def __str__(self):
return str(self.names)
__repr__ = __str__

2.__len__

如果一个类表现得像一个list,要获取有多少元素,就得用len()函数

要让len()函数正常工作,类必须提供一个特殊方法__len__(),返回元素的个数

class Students(object):
def __init__(self, *args):
self.names = args
def __len__(self):
return len(self.names) ss = Students('hyq','ysy')
print(len(ss) >>>2

python特殊函数__str__、__repr__和__len__的更多相关文章

  1. 034.Python的__str__,__repr__,__bool__ ,__add__和__len__魔术方法

    Python的其他方法 1 __str__方法 触发时机: 使用print(对象)或者str(对象)的时候触发 功能: 查看对象信息 参数: 一个self接受当前对象 返回值: 必须返回字符串类型 基 ...

  2. Python——详解__str__, __repr__和__format__

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题的第10篇文章,我们来聊聊Python当中的类. 打印实例 我们先从类和对象当中最简单的打印输出开始讲起,打印一个实例 ...

  3. python面对对象编程------4:类基本的特殊方法__str__,__repr__,__hash__,__new__,__bool__,6大比较方法

    一:string相关:__str__(),__repr__(),__format__() str方法更面向人类阅读,print()使用的就是str repr方法更面对python,目标是希望生成一个放 ...

  4. python 中的 %s,%r,__str__,__repr__

    1.%s,%r的区别 在进行格式化输出时,%r 与 %s 的区别就好比 repr() 函数处理对象与 str() 函数处理对象的差别. %s ⇒ str(),比较智能: %r ⇒ repr(),处理较 ...

  5. python基础---- __getattribute__----__str__,__repr__,__format__----__doc__----__module__和__class__

    目录: 一. __getattribute__ 二.__str__,__repr__,__format__ 三.__doc__ 四.__module__和__class__ 一. __getattri ...

  6. Python的程序结构[1] -> 方法/Method[4] -> 魔术方法 __call__ / __str__ / __repr__

    __call__ 方法 __call__ 是当对象被调用时会调用的方法,允许一个对象(类的实例等)像函数一样被调用,也可以传入参数. 1 class Foo(): 2 def __init__(sel ...

  7. 复习python的__call__ __str__ __repr__ __getattr__函数 整理

    class Www: def __init__(self,name): self.name=name def __str__(self): return '名称 %s'%self.name #__re ...

  8. Python中特殊函数__str__()

    在类中定义了__str__(self)方法,那么当使用print打印实例对象的时候,就会直接打印出在这个方法中return的数据. 案列: 1 class Book: 2 3 def __init__ ...

  9. day29 类中的内置函数方法 __str__ __repr__ __call__ isinstance() issubclass()

    __str__()__repr__()__len__() str() 转字符串repr() 让字符原形毕露的方法len() 计算长度 内置的方法很多,但是并不是全部都在object中,比如len(), ...

随机推荐

  1. vue-cli使用sockjs即时通信

    基于webSocket通信的库主要有 socket.io,SockJS,这次用的是 SockJS. 这里我们使用sockjs-client.stomjs这两个模块,要实现webSocket通信,需要后 ...

  2. 数据中心架构ToR和EoR【总结】

    1.前言 最近在看<云数据中心网络技术>,学习了企业数据中心网络建设过程,看到有ToR和EoR两种布线方式,之前没有接触过,今天总结一下. 2.布线方式 ToR:(Top of Rack) ...

  3. tensorflow tfdbg 调试手段

    https://blog.csdn.net/gubenpeiyuan/article/details/82710163 TensorFlow 调试程序 tfdbg 是 TensorFlow 的专用调试 ...

  4. 关于Django Ajax CSRF 认证

    CSRF(Cross-site request forgery跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的 ...

  5. 评分卡模型剖析之一(woe、IV、ROC、信息熵)

    信用评分卡模型在国外是一种成熟的预测方法,尤其在信用风险评估以及金融风险控制领域更是得到了比较广泛的使用,其原理是将模型变量WOE编码方式离散化之后运用logistic回归模型进行的一种二分类变量的广 ...

  6. springBoot于tomcat7搭建websocket服务

    最近在项目中需要服务端进行推送服务,于是决定使用webSocket进行双向通讯.刚开始觉得应该没问题,参考网上的博客进行开发配置.我们的开发环境使用的是springBoot.tomcat7.servl ...

  7. MySQL 服务常用操作命令

    1.MySQL 服务设置 在使用 mysql.server 命令之前需要将路径 /usr/local/mysql/support-files 添加到系统环境变量中. export PATH=$PATH ...

  8. Java读取Excel内容

    借助于apathe的poi.jar,由于上传文件不支持.jar所以请下载后将文件改为.jar,在应用程序中添加poi.jar包,并将需要读取的excel文件放入根目录即可 本例使用java来读取exc ...

  9. 如何将本地项目上传至GitHub(so easy!!!)

    如何将本地项目上传至GitHub 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安装git工具,这里给出下载地址,下载后一路直 ...

  10. [tomcat启动报错]registered the JDBC driver [com.alibaba.druid.proxy.DruidDriver] but failed to unregister it when the web application was stopped

    环境:一个tomcat ,一个工程配置了多数据源,在启动的时候报如下错误: SEVERE: The web application [/qdp-resource-job] registered the ...