zoukankan      html  css  js  c++  java
  • 类的专有方法(__repr__)

    # -*- 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'>
    '''
  • 相关阅读:
    recommend a wait button on web page
    ref: 这正是BI工具的精髓:它不是让你相信自己所知道的,而是促使你去思考更多的问题和疑惑。
    asp.net 中使用iframe动态加载页面
    forbid cache page in asp.net
    转贴: 想使你的公司有所创新吗?
    treeview 的使用心得
    ref: 九大数据仓库方案特点比较
    recommend a cool calendar
    Servlet与Jsp学习笔记10、Localized
    重复表的操作
  • 原文地址:https://www.cnblogs.com/dengyg200891/p/4872751.html
Copyright © 2011-2022 走看看