python build-in function __cmp__

读王纯业前辈的笔记遇到个很坑的例子

A namespace is a mapping from names to objects

>>> class a:
    def __cmp__(self,other):
        if other > 0 : print ‘other > 0‘ ;return -1
        elif other < 0 : print ‘other < 0‘ ;return 1
        else : print ‘other==0‘; return 0

>>>
>>>
>>>
>>> o=a()
>>>
>>> if (o > 10) : print ‘tt‘

other > 0
>>> if (o < 10) : print ‘tt‘

other > 0
tt
>>>
>>>
>>>
>>>
>>> if (o > -10) : print ‘tt‘

other < 0
tt
>>> if (o < -10) : print ‘tt‘

other < 0

__cmp__ 中return的3个值 1,-1,0

执行过程:

1,根据other的值确定执行那一条,结果是返回1,-1,或0

2,判断返回值是否和表达式中的符号匹配,匹配返回True,不匹配返回False

时间: 2024-12-30 03:01:43

python build-in function __cmp__的相关文章

chr()、unichr()和ord(),全半角转换,ValueError: unichr() arg not in range() (wide Python build)

chr().unichr()和ord() chr()函数用一个范围在range(256)内的(就是0-255)整数作参数,返回一个对应的字符. unichr()跟它一样,只不过返回的是 Unicode字符,这个从Python 2.0才加入的unichr()的参数范围依赖于你的Python是如何被编译的.如果是配置为USC2的Unicode,那么它的允许范围就是 range(65536)或0x0000-0xFFFF:如果配置为UCS4,那么这个值应该是range(1114112)或 0x00000

sublime text python build后提示can&#39;t find &#39;__main__&#39; module in &#39; &#39;

问题描述: 在sublime text里写最简单的python语句hello world: print  ('hello world') Ctrl+B  build后出错如下图: 解决办法: 这个问题的原因说起来很幼稚,就是因为没有保存文件.所以只需要保存一下文件,再回来build即可. sublime text python build后提示can't find '__main__' module in ' '

Python中def function(*args)用法

Python中可用def function(): 创建一个自定义函数. 下面我将用代码解释def function(*args): 的用法 --- *args输入参数如何工作的: *args ```可以接受序列的输入参数.当函数的参数不确定时,可以使用 *args. #!/usr/bin/python # -*- coding: UTF-8 -*- def biggest_number(*args): print max(args) return max(args) def smallest_n

python closure and function decorators 1

原文:http://thecodeship.com/patterns/guide-to-python-function-decorators/ 仅此做一个中文翻译: 我们知道,python在方法def的使用上,有一些非常强大的功能. 譬如,将方法传给一个变量: def sayHI(name): return "hi " + name ExexSayHI = sayHI print ExexSayHI("Allen") 或者在方法中定义方法 def SayHi(nam

Python 函數 Function

函數最初被設計出來,是用來減輕重複 coding 一段相同的代碼,這之間只有代碼 (方法,Method) 的重用,但還沒有物件導向OO整個Object 的屬性與方法被封裝重用的概念. 函數的定義很簡單,使用 def 這保留字,而其宣告方式如下: def 函數名(參數名) : 例如: >>> def print_count(): # 函數宣告...    print('Good')...    print('Morning')...    print('Mr.')...>>&g

simon effect (psychology experiment ) : build the function of wait4key()

## #the real experiment for simon effect #load the library which is our need import pygame import sys,random from pygame.locals import * pygame.init() win = pygame.display.set_mode((800,600),DOUBLEBUF|HWSURFACE) left = (200,300) right = (600,300) red

python: practice recurse function

starting with a  factorial : def      function_factorial(n): number=1 for i   in   range(1,n+1): number *=i return number print(function_factorial( n) use this application can acheved one number's factorial. similar  recurse function also can realize

python closure and function decorators 2

好吧,基础打好,聊聊decorator,先看这段代码: def SayHi(name): return "How are you {0}, good morning".format(name) def decoator(func): def func_wrapper(name): return "<p>{0}</p>".format(func(name)) return func_wrapper hi = decoator(SayHi) pr

python build in functions

zip: 接受一系列可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后再返回这些元组组成的list.若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同 >>> a = [1,2,3] >>> b = ['a','b','c'] >>> z = zip(a,b) >>> z [(1, 'a'), (2, 'b'), (3, 'c')] >>> zip(*z) [(1, 2, 3), ('a'