-
格式化函数:
s[0].upper() 首字母大写 s[1:].lower() 其余字母小写
查看全部 -
计算平方根可以用函数:
math.sqrt()
查看全部 -
f1, f2, f3 = count() # 高级序列赋值,把count()里的值按顺序分别赋值给前面的变量
查看全部 -
@functools.wraps(function):用于装饰器中将原函数的一些属性(函数名称、注释文档、参数列表等)复制到返回的新函数中。
def performance(unit): def perf_decorator(f): @functools.wraps(f) def wrapper(*args, **kw): ... return wrapper return perf_decorator
查看全部 -
带参数的decoractor:
@log('DEBUG') def my_fuc(): pass # 即 my_func = log('DEBUG')(my_func) # 即 log_decorator = log('DEBUG') my_func = log_decorator(my_func) # 即 log_decorator = log('DEBUG') @log_decorator def my_func(): pass # def log(prefix): def log_decorator(f): def wrapper(*args, **kw): print '[%s] %s()...' % (prefix, f.__name__) return f(*args, **kw) return wrapper return log_decorator @log('DEBUG') def test(): pass print test()
查看全部 -
class Rational(object):
def __init__(self, p, q):
self.p = p
self.q = q
def __int__(self):
return self.p / self.q
def __float__(self):
return self.p * 1.0 / self.q
print int(Rational(7, 2))
print float(Rational(7, 2))
print float(Rational(1, 3))
查看全部 -
class Rational(object): def __init__(self, p, q): self.p = p self.q = q def __add__(self, r): return Rational(self.p * r.q + self.q * r.p, self.q * r.q) def __str__(self): return '%s/%s' % (self.p, self.q) __repr__ = __str__
现在可以试试有理数加法:
>>> r1 = Rational(1, 3) >>> r2 = Rational(1, 2) >>> print r1 + r2 5/6
查看全部 -
reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。
查看全部 -
class Fib(object):
def __init__(self, num):
if num < 1:
self.array = []
elif num == 1:
self.array = [0]
else:
self.array = [0,1]
for i in range(2, num):
self.array.append(self.array[i-2] +self.array[i-1])
pass
def __str__(self):
# return self.array.__str__()
return str(self.array)
def __len__(self):
return len(self.array)
f = Fib(10)
print f
print len(f)
查看全部 -
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 s is not Student: return -1 if self.name < s.name: return -1 elif self.name > s.name: return 1 else: return 0 L = [Student('Tim', 99), Student('Bob', 88), 100, 'Hello'] print sorted(L)
查看全部 -
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 cmp(self.name,s.name)
else:
return 1
L = [Student('Tim', 99), Student('Bob', 88), Student('Alice', 99)]
print sorted(L)
查看全部 -
types动态将方法绑定到实例上查看全部
-
def calc_prod(lst):
def h():
return reduce(lambda x,y:x*y,lst)
return h
f = calc_prod([1, 2, 3, 4])
print f()
查看全部 -
无参数decorator:使用“@”可避免手动编写“f = decorate(f)”这样的代码。
def dec(f): def fn(x): ... return f(x) return fn @dec def f2(y): ... def log(f): def fn(x): # def fn(*args, **kw): 可自适应任何参数定义的函数 ... return f(x) # return f(*args, **kw) return fn
查看全部 -
调用 sorted() 并传入 reversed_cmp 就可以实现倒序排序:
>>> sorted([36, 5, 12, 9, 21], reversed_cmp) [36, 21, 12, 9, 5]
查看全部
举报