python特殊函数__str__、__repr__和__len__
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__的更多相关文章
- 034.Python的__str__,__repr__,__bool__ ,__add__和__len__魔术方法
Python的其他方法 1 __str__方法 触发时机: 使用print(对象)或者str(对象)的时候触发 功能: 查看对象信息 参数: 一个self接受当前对象 返回值: 必须返回字符串类型 基 ...
- Python——详解__str__, __repr__和__format__
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题的第10篇文章,我们来聊聊Python当中的类. 打印实例 我们先从类和对象当中最简单的打印输出开始讲起,打印一个实例 ...
- python面对对象编程------4:类基本的特殊方法__str__,__repr__,__hash__,__new__,__bool__,6大比较方法
一:string相关:__str__(),__repr__(),__format__() str方法更面向人类阅读,print()使用的就是str repr方法更面对python,目标是希望生成一个放 ...
- python 中的 %s,%r,__str__,__repr__
1.%s,%r的区别 在进行格式化输出时,%r 与 %s 的区别就好比 repr() 函数处理对象与 str() 函数处理对象的差别. %s ⇒ str(),比较智能: %r ⇒ repr(),处理较 ...
- python基础---- __getattribute__----__str__,__repr__,__format__----__doc__----__module__和__class__
目录: 一. __getattribute__ 二.__str__,__repr__,__format__ 三.__doc__ 四.__module__和__class__ 一. __getattri ...
- Python的程序结构[1] -> 方法/Method[4] -> 魔术方法 __call__ / __str__ / __repr__
__call__ 方法 __call__ 是当对象被调用时会调用的方法,允许一个对象(类的实例等)像函数一样被调用,也可以传入参数. 1 class Foo(): 2 def __init__(sel ...
- 复习python的__call__ __str__ __repr__ __getattr__函数 整理
class Www: def __init__(self,name): self.name=name def __str__(self): return '名称 %s'%self.name #__re ...
- Python中特殊函数__str__()
在类中定义了__str__(self)方法,那么当使用print打印实例对象的时候,就会直接打印出在这个方法中return的数据. 案列: 1 class Book: 2 3 def __init__ ...
- day29 类中的内置函数方法 __str__ __repr__ __call__ isinstance() issubclass()
__str__()__repr__()__len__() str() 转字符串repr() 让字符原形毕露的方法len() 计算长度 内置的方法很多,但是并不是全部都在object中,比如len(), ...
随机推荐
- Ubuntu安装最新版nodejs
今天在学习以太坊时,需要用到nodejs,因为使用的是ubuntu 16.04 LTS,一直安装的是老版本的nodejs,官方给方法用不成,折腾了半天,什么软链.手动编译,总觉得不很靠谱(linux水 ...
- Eclipse创建第一个Spring Boot项目
一.安装SpringBoot插件 安装过程需要联网下载插件,属于在线安装,请耐心等待安装完成,下载安装完成以后,需要重启Eclipse 二.创建Spring Boot项目 如下图所示new-other ...
- Java之收集很好的Java学习资料地址+博客
https://blog.insanecoder.top/tcp-packet-splice-and-split-issue/ http://blog.csdn.net/qilixiang012/ar ...
- SNF快速开发平台成长史V4.5-Spring.Net.Framework-SNF软件开发机器人
SNF快速开发平台成长史 SNF框架CS\BS 视频教程 https://pan.baidu.com/s/1dFegFKX SNF开发机器人教程:链接:https://pan.baidu.com/s/ ...
- Oracle&SQLServer中实现跨库查询
一.在SQLServer中连接另一个SQLServer库数据 在SQL中,要想在本地库中查询另一个数据库中的数据表时,可以创建一个链接服务器: EXEC master.dbo.sp_addlinked ...
- Spring Boot系列——死信队列
在说死信队列之前,我们先介绍下为什么需要用死信队列. 如果想直接了解死信对接,直接跳入下文的"死信队列"部分即可. ack机制和requeue-rejected属性 我们还是基于上 ...
- 减少网站跳转时间,增强网站数据安全——HSTS 详解
近年来随着 Google.Apple.百度等公司不断推动 HTTPS 普及,全网 HTTPS 已是大势所趋.目前多数网站都已经支持 HTTPS 访问,但是在由 HTTP 转向 HTTPS 路程中,不少 ...
- ASP.NET CORE 中用单元测试测试控制器
之前用ASP.NET CORE做的项目 加了一个新功能,数据库加了个字段balabala.... 更新到服务器上,新功能测试正常,然后就没管了..... 今天客户说网站有BUG,某个页面打开后出错了, ...
- grokking deep learning
https://www.manning.com/books/grokking-deep-learning?a_aid=grokkingdl&a_bid=32715258
- Asp.Net MVC三层架构之autofac使用教程
开发环境:vs2015..net4.5.2.mvc5.ef6 Autofac简介 IOC控制反转(Inversion of Control,缩写为IOC),Autofac是一个开源的依赖注入框架,Au ...