上述 Student 类实现了__cmp__()方法,__cmp__用实例自身self和传入的实例 s 进行比较,如果 self 应该排在前面,就返回 -1,如果 s 应该排在前面,就返回1,如果两者相当,返回 0。
2015-12-15
def format_name(s):
return s.title()
print map(format_name, ['adam', 'LISA', 'barT'])
return s.title()
print map(format_name, ['adam', 'LISA', 'barT'])
2015-12-15
def count():
fs = []
for i in range(1, 4):
def f(x):
return x*x
fs.append(f)
return fs
f1, f2, f3 = count()
print f1(1), f2(2), f3(3)
哈哈,答案和我思想差不多,只不过我耍赖皮改了最后一行,哈哈o(^▽^)o
fs = []
for i in range(1, 4):
def f(x):
return x*x
fs.append(f)
return fs
f1, f2, f3 = count()
print f1(1), f2(2), f3(3)
哈哈,答案和我思想差不多,只不过我耍赖皮改了最后一行,哈哈o(^▽^)o
2015-12-14
这里注意到一个细节,就是把score定义成了私有属性__score,而我们根据前面的知识了解到私有属性在类外是不能够直接访问的,必须通过方法调用的方式,而装饰器函数又恰好把方法装饰成了属性调用,所以这里调用属性其实就是调用方法,返回的是私有属性
2015-12-12
class Rational(object):
def __init__(self, p, q):
self.a = p
self.b = q
def __str__(self):
return '%s/%s' % (self.a, self.b)
__repr__ = __str__
def __add__(self, r):
return Rational(self.a * r.b + self.b * r.a, self.b * r.b)
def __init__(self, p, q):
self.a = p
self.b = q
def __str__(self):
return '%s/%s' % (self.a, self.b)
__repr__ = __str__
def __add__(self, r):
return Rational(self.a * r.b + self.b * r.a, self.b * r.b)
2015-12-11
import functools
sorted_ignore_case = functools.partial(sorted,key=str.lower)
print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])
sorted_ignore_case = functools.partial(sorted,key=str.lower)
print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])
2015-12-11