类的专有方法(__repr__)
2015-10-12 20:30
260 查看
# -*- coding: utf-8 -*- #python 27 #xiaodeng #http://blog.csdn.net/yyt8yyt8/article/details/7030416 #http://zhidao.baidu.com/link?url=zdkLDmHXmSqFlGp7uBWr3HMFq2Wq8Eg6bd-Rm0pjLIGXviEBr5Li8z7avS-uXK_z_YJ1hBPIhB63PqAKH40NZX_-u-c7rJB1B4Cyd4u3PH3 #http://stackoverflow.com/questions/1436703/difference-between-str-and-repr-in-python #类的专有方法(__repr__) #__repr__ #该函数返回对象字符串表达式,repr()转化为供解释器读取的形式;返回一个可以用来表示对象的可打印字符串 #尝试生成这样一个字符串,将其传给 eval()可重新生成同样的对象;否则生成用尖括号包住的字符串,包含类型名和额外的信息(比如地址) #一个类(class)可以通过 __repr__() 成员来控制repr()函数作用在其实例上时的行为 #str()函数,得到的字符串可读性好,可以被print调用 #repr()函数,将一个对象转化为字符串显示,注意只是显示用; #通常obj(对象)==eval(repr(obj)),接受一个对象作为其参数,返回适当的字符串 class Study(): def __init__(self,name='FengMei'): self.name=name def __del__(self): print 'del' def getName(self): print self.name #控制repr()函数作用在其实例上时的行为 #当需要显示一个对象在屏幕上,将这个对象的属性或方法整理成一个可以打印输出的格式 #与eval()对应,打印出的结果赋给eval,通常可以获得原来的对象(对象类型) def __repr__(self): return "Study('xiaodeng')" if __name__=='__main__': #实例化 car=Study() b=repr(car) print b #Study('xiaodeng') print '**'*10 print type(b)#<type 'str'> print type(eval(b))#<type 'instance'>,实例 ''' Study('xiaodeng') ******************** <type 'str'> del <type 'instance'> '''
相关文章推荐
- C#设计没有边框的form
- 配置linux httpd conf
- 一行代码获取通讯录联系框架
- leetcode289 : Game of Life
- 项目36.1M$pszi$y是嘛意思?
- ViewController中[self setTtile]与[self.navigationItem setTitle]的区别
- Android 利用广播实现指定号码的短信的拦截 附源码下载链接
- 慕课JAVA攻城狮计划---使用 Date 和 SimpleDateFormat 类表示时间
- [svn] TortoisSVN的Blam功能
- MATLAB字符串数组等的运用
- 我为什么要学习经济学
- mac下搭建前端自动化工程
- LeetCode -- Valid Parenthese
- 见拦截导弹
- 什么是死锁及死锁的必要条件和解决方法【转】
- 博客集合
- dos下通过wmic命令查看硬盘和内存/CPU信息(windows自带命令查看硬件信息)
- c++调用lua时简单打印lua栈
- [[ViewController alloc]init]与[ViewController alloc]initWithNibName: bundle: ]的区别;
- iOS SDK详解之视频播放(AVPlayer)附Demo