For ( __str__ ),we going to see a example ...

and find who is working for ...

#!/usr/bin/python

class Person(object):

    def __init__(self,name,gender):
self.name = name
self.gender = gender if __name__ == '__main__': p = Person('Frank',23)
print p

See,The instance of ( Person ) have a default method ,just like ( describe method ) ...

it's called by instance self (here,is p itself) ...

So,what it is name ...

keep read,you will find what's it is ...

#!/usr/bin/python

class Person(object):

    def __init__(self,name,gender):
self.name = name
self.gender = gender def __str__(self):
   """override the object method"""
return 'Person object: %s,%d' % (self.name,self.gender) if __name__ == '__main__': p = Person('Frank',23)
print p

See,we got a totally different result ...

So,we know who is the method ( __str__ ) ...

Okay,next we will talk (__cmp__) inside method ...

#!/usr/bin/python

class Student(object):

    def __init__(self,name,score):
self.name = name
self.score = score def __str__(self):
return '(%s: %s)' % (self.name,self.score) __repr__ = __str__ def __cmp__(self,s):
if self.score > s.score:
return -1 elif self.score < s.score:
return 1 else:
if self.name < s.score:
return -1
elif self.name < s.name:
return 1
else:
return 0 if __name__ == '__main__':
L = [Student('Tim',99),Student('Bob',88),Student('Alice',99)]
print sorted(L)

python __str__ & __repr__ & __cmp__的更多相关文章

  1. python __str__ , __repr__区别

    Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数. 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式 (如果没有等价的语法,则会 ...

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

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

  3. Python中__repr__和__str__区别

    Python中__repr__和__str__区别 看下面的例子就明白了 class Test(object): def __init__(self, value='hello, world!'): ...

  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. 034.Python的__str__,__repr__,__bool__ ,__add__和__len__魔术方法

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

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

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

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

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

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

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

随机推荐

  1. Servlet 利用Cookie实现一周内不重复登录

    import java.io.IOException;import java.io.PrintWriter; import javax.servlet.ServletException;import ...

  2. 【BZOJ1812】riv(多叉树转二叉树,树形DP)

    题意:给定一棵树,每个点有权值,每条边有边权(单向边).你可以选取K个黑点,使得从每个点移动到距离他最近的黑点的花费(距离*点权)的总和最小. n<=100 k<=50 w[i],a[i] ...

  3. GridView中 LinkButton两种方式

    <asp:TemplateField HeaderText="操作" ShowHeader="False"> <ItemTemplate> ...

  4. 时间转换为yyyymmdd

    Convert.ToDateTime(tbinpici.Text).ToString("yyyyMMdd")

  5. linux开机启动

    开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程.分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径. 启动第一步--加载BIOS 当你打开计算机电源,计算机 ...

  6. linux shell 脚本攻略学习19--sed命令详解

    sed(意为流编辑器,英语“stream editor”的缩写)是Unix/linux常见的命令行程序.sed用来把文档或字符串里面的文字经过一系列编辑命令转换为另一种格式输出,即文本替换.sed通常 ...

  7. javascript学习第一课

    1.基本知识: 1.1 词法结构 1.1.1 字符集 javascript程序是用Unicode字符集编写的. 1.1.2 区分大小写 javascript是区分大小写的语言.也即是关键字.变量.函数 ...

  8. 从DNS配置

    从服务器可以从主服务器上抓取指定的区域数据文件起到备份解析记录和负载均衡的作用. 主DNS服务器IP:192.168.16.20 从DNS服务器IP:192.168.16.30 1,修改主服务器区域配 ...

  9. mysql之group_concat函数详解

    函数语法: group_concat( [DISTINCT]  要连接的字段   [Order BY 排序字段 ASC/DESC]   [Separator '分隔符'] ) 下面举例说明: sele ...

  10. ansible 2.2的源码编译安装

    ansible代码下载地址:http://releases.ansible.com/ansible/ # git clone git://github.com/ansible/ansible.git ...