-
它实际上拥有自己的 whoAmI()方法以及从 Person继承的 whoAmI方法,但调用 s.whoAmI()总是先查找它自身的定义,如果没有定义,则顺着继承链向上查找,直到在某个父类中找到为止。
查看全部 -
最大公约数方程解释
def gcd(x,y):
if y==0:
return x
else:
return gcd(y,x%y)
查看全部 -
Python的新版本会引入新的功能,但是,实际上这些功能在上一个老版本中就已经存在了。要“试用”某一新的特性,就可以通过导入__future__模块的某些功能来实现。
在Python 3.x中,字符串统一为unicode,不需要加前缀 u,而以字节存储的str则必须加前缀 b。请利用__future__的unicode_literals在Python 2.7中编写unicode字符串。
from __future__ import unicode_literals
s = 'am I an unicode?'
print isinstance(s, unicode)
查看全部 -
python之定义类并创建实例
类名以大写字母开头,紧接着是object,表示该类是从哪个类继承下来的。
查看全部 -
functools.partial可以把一个参数多的函数变成一个参数少的新函数,少的参数需要在创建时指定默认值,这样,新函数调用的难度就降低了。
import functools
print sorted(['bob', 'about', 'Zoo', 'Credit'], key = str.lower, reverse = False)
sorted_ignore_case = functools.partial(sorted,cmp=lambda a,b:cmp(a.upper(), b.upper()))
print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])
sorted_ignore_case = functools.partial(sorted,key=str.lower,reverse=True)
print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])
查看全部 -
python中完善decorator
import time, functools
def performance(unit):
def perf_decorator(f):
@functools.wraps(f)
def fn(*args, **kw):
t1 = time.time()
r = f(*args, **kw)
t2 = time.time()
differ = t2-t1 if unit != 'ms' else (t2-t1)*1000
print 'exec %s time %f %s' % (f.__name__,differ,unit)
return r
return fn
return perf_decorator
@performance('ms')
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial.__name__
查看全部 -
import time
def performance(unit):
def perf_decorator(f):
def fn(*args, **kw):
t1 = time.time()
r = f(*args, **kw)
t2 = time.time()
differ = t2-t1 if unit != 'ms' else (t2-t1)*1000
print 'call %s() time %f %s' % (f.__name__,differ,unit)
return r
return fn
return perf_decorator
@performance('s')
def factorial(n):
time.sleep(1.123)
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)
查看全部 -
对于无参数的装饰器(使用时如:@say),其装饰器函数的参数是要被装饰的函数对象名;而对于有参数的装饰器在调用时使用的是应用的参数,如:@say(argv)的argv,已不再是要被装饰的函数对象名,所以必须在内部再定义一个函数来接收要被装饰的函数对象。
查看全部 -
import time
def performance(f):
def fn(*args, **kw):
print 'call ' + f.__name__ + '() in ' + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
return f(*args, **kw)
return fn
@performance
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)
查看全部 -
print x
默认输出x的str属性 既 print str(x)
repr包括x的连带的函数,或库信息
print repr(x)或print x.__repr__()
查看全部 -
lambda中接if elif else,采用多层嵌套相当于3个if
lambda x: 1 if xxx else(2 if xxx else(3 if xxx) )
查看全部 -
sorted 对比实例时 先使用sorted中的key缺省就忽略, 如果有就忽略实例方法__cmp__ ,采用默认对比方式,如果有__cmp__则忽略sorted的cmp
查看全部 -
求最大公约数方法2
相减法
有两整数a和b:
① 若a>b,则a=a-b
② 若a<b,则b=b-a
③ 若a=b,则a(或b)即为两数的最大公约数
④ 若a≠b,则再回去执行①
例如求27和15的最大公约数过程为:
27-15=12( 15>12 ) 15-12=3( 12>3 )
12-3=9( 9>3 ) 9-3=6( 6>3 )
6-3=3( 3==3 )
因此,3即为最大公约数查看全部 -
求最大公约数算法:
(1)辗转相除法
有两整数a和b:
① a%b得余数c
② 若c=0,则b即为两数的最大公约数
③ 若c≠0,则a=b,b=c,再回去执行①
例如求27和15的最大公约数过程为:
27÷15 余1215÷12余312÷3余0因此,3即为最大公约数
查看全部 -
map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
map()函数不改变原有的 list,而是返回一个新的 list。
输出格式为:函数(预置函数名,list)
查看全部
举报