python3.x __str__与__repr__
__repr__和__str__用于显示,__str__是面向用户的,而__repr__面向coder【调试与开发】
repr(默认交互式回显)【来自python入门】
str(也就是打印语句) 一般用途
输出的话先调用__str__,通常返回时字符串显示,
打印操作会先尝试__str__和str内置函数(print运行的内部等价形式)通常返回用户一个友好显示
__repr__用于所有其他环境之中:用于交互模式下提示回应以及repr函数,如果没有使用__str__,会使用print和str,通常返回一个编码字符串,可以用来创建对象,或者给开发者一个详细的显示
__repr__用于任何地方,除了当定义一个__str__的时候,使用print和str,要注意,没有定义__str__
打印还是使用__repr__,但是反过来不成立,其他环境(交互式响应模式)只是使用__repr__不需要尝试__str__
以下是打印一个对象的信息,
重载该类的__str__,__repr__,__gt__,__lt__,__eq__等
class Person(object):
def __init__(self, name, gender,age, **kw):
self.name=name
self.gender=gender
self.age=age
#for k,v in kw.iteritems():py2.x
for k,v in kw.items():#py3.x
setattr(self, k, v)
def __eq__(self, value):
if self.gender == value.gender:
return 1
else:
return 0
def __gt__(self, value):
if self.gender > value.gender:
return 1
else:
return 0
def __lt__(self, value):
if self.gender < value.gender:
return 1
else:
return 0
def __repr__(self):
return '(Student_repr: %s, %s)'%(self.name, self.gender)
def __str__(self):
#print(self.name+' '+self.gender)这里不能直接print只能return
return '(Student: %s, %s)'%(self.name, self.gender)
def __cmp__(self,s):
if self.score == s.score:
return self.name> s.name
return -(self.score>s.score)
p = Person('Bob', 'Male', age=18, course='Python')
L = [Person('Tim', 99, 18), Person('Bob', 68, 28), Person('Alice', 99, 29)]
def new_sort(obj):
if obj.gender>=90:
print(1)
elif obj.gender>=60:
print(2)
else:
print(3)
#print (p.age)
#print (p.course)
#print(p)
#print(L)
sorted(L, reverse=True)
print(L)#为什么这里输出的是list里面对象的地址? 这就是__str__跟__repr__的区别
python3.x __str__与__repr__的更多相关文章
- [Python3 填坑] 015 __str__ 与 __repr__ 的区别
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 上例子 2.2 关系与区别 Python 3.7.3 的官方文档 网上看到一个例子,运行了一下 简单地说 1. print( 坑的信息 ...
- python中魔法方法__str__与__repr__的区别
提出问题 当我们自定义一个类时,打印这个类对象或者在交互模式下直接输入这个类对象按回车,默认显示出来的信息好像用处不大.如下所示 In [1]: class People: ...: def __in ...
- 浅谈python中__str__和__repr__的区别
很多时候我们在创建一个类的时候,在终端打印类或者查看的时候一般都不会得到一个太满意的结果 class T: def __init__(self): self.color="red" ...
- python中__str__与__repr__
(1)背景 python中,对于类(自定义类)的实例对象的默认显示既没有太大用处,也不美观.比如: class adder: def __init__(self,value=0): self.data ...
- python 的特殊方法 __str__和__repr__
__str__和__repr__ 如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): class Person(object): def __init__(self, name, ...
- __str__与__repr__
在讲解之前,我们先来了解下str和repr的区别:两者都是用来将数字,列表等类型的数据转化为字符串的形式.不同之处在于str更加类似于C语言中使用printf输出的内容,而repr输出的内容会直接将变 ...
- python中__str__与__repr__的区别
__str__和repr __str__和__repr__都是python的内置方法,都用与将对象的属性转化成人类容易识别的信息,他们有什么区别呢 来看一段代码 from math import hy ...
- What is the difference between __str__ and __repr__ in Python
from https://www.pythoncentral.io/what-is-the-difference-between-__str__-and-__repr__-in-python/ 目的 ...
- python之反射和内置函数__str__、__repr__
一.反射 反射类中的变量 反射对象中的变量 反射模块中的变量 反射本文件中的变量 .定义:使用字符串数据类型的变量名 来获取这个变量的值 例如: name = 'xiaoming' print(nam ...
随机推荐
- android android studio error
SIMPLE: Error computing //cmake 包含的跨平台头文件或者是源文件路径出错
- Centos7.4 离线安装httpd(解决rpm依赖)
1.直接下载httpd的rpm安装包,安装失败需要先解决依赖. [root@node06 ~]# rpm -ivh httpd--.el7.centos.x86_64.rpm warning: htt ...
- Java Web学习总结(8)JSP(二)
一,JSP中的九个内置对象 名称 类型 描述 out javax.servlet.jsp.JspWriter 用于页面输出 request javax.servlet.http.HttpServlet ...
- php ord()函数 语法
php ord()函数 语法 作用:返回字符串的首个字符的 ASCII 值.直线电机生产厂家 语法:ord(string) 参数: 参数 描述 string 必须,要从中获得ASCII值的字符串 说明 ...
- Android逆向之旅---Android应用的汉化功能(修改SO中的字符串内容)
一.前言 今天我们继续来讲述逆向的知识,今天我们来讲什么呢?我们在前一篇文章中介绍了关于SO文件的格式,今天我们继续这个话题来看看如何修改SO文件中的内容,看一下我们研究的主题: 需求:想汉化一个Ap ...
- LUOGU P3380 【模板】二逼平衡树(树套树)
传送门 解题思路 这里写的是常数巨大的线段树套\(splay\),卡了半天常才过.首先线段树每个节点挂一个\(splay\),\(splay\)中的元素即为线段树管辖的区间中的数.对于操作\(1\), ...
- CocoaPods中pod search报错的解决办法
pod search报错的原因: 每次使用pod search命令的使用会在该目录下生成一个search_index.json文件,会逐渐的增大,文件达到一定大小后,ruby解析里面的json字符就会 ...
- centos查看磁盘空间大小
查看磁盘空间大小 df -h 查看当前文件夹所有文件大小 du -sh 查看指定文件夹大小 du -h /data 查看指定文件夹下所有文件的大小 du -h /data/ 查看指定文件大小 du - ...
- 深入浅出HashMap
/** *@ author ViVi *@date 2014-6-11 */ Hashmap是一种非常常用的.应用广泛的数据类型,最近研究到相关的内容,就正好复习一下.希望通过仪器讨论.共同提高~ 1 ...
- Websphere如何查看后台的日志以及简单应用
文章目录 查找日志 简单应用: 安装应用 查找日志 /opt/IBM/WebSphere/AppServer/profiles/default/logs/server1/SystemOut.log 这 ...