python种的特殊方法其实就是利用已有的方法,修改其实际功能
比如第一节讲的 print p 其实是print p.__str__()
是已经调用这个__str__()函数了, 只不过我们是在class中对__str__的功能进行了重新定义
同理,这节讲的__cmp__也是期望在class内部定义具有compare功能的函数
if可以实现, 2.X中利用内置的cmp()可以让程序更简单,但是3.x就不行了
比如第一节讲的 print p 其实是print p.__str__()
是已经调用这个__str__()函数了, 只不过我们是在class中对__str__的功能进行了重新定义
同理,这节讲的__cmp__也是期望在class内部定义具有compare功能的函数
if可以实现, 2.X中利用内置的cmp()可以让程序更简单,但是3.x就不行了
2018-01-31
from os.path import isdir,isfile
print isdir(r'/data/webroot/')
print isfile(r'/data/webroot/resource/python/test.txt')
print isdir(r'/data/webroot/')
print isfile(r'/data/webroot/resource/python/test.txt')
2018-01-30
def cmp_ignore_case(s1, s2):
if s1.title() < s2.title():
return -1
elif s1.title() > s2.title():
return 1
else:
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'],cmp_ignore_case)
注意大于小于符号
if s1.title() < s2.title():
return -1
elif s1.title() > s2.title():
return 1
else:
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'],cmp_ignore_case)
注意大于小于符号
2018-01-30
sorted_ignore_case = functools.partial(sorted,cmp=cmp_ignore_case)
cmp_ignore_case是第四节写的作业
cmp_ignore_case是第四节写的作业
2018-01-30
def format_name(s):
return s.title()
print map(format_name, ['adam', 'LISA', 'barT'])
return s.title()
print map(format_name, ['adam', 'LISA', 'barT'])
2018-01-30
import math
def add(x, y, f):
return f(x) + f(y)
print add(25, 9, math.sqrt)
def add(x, y, f):
return f(x) + f(y)
print add(25, 9, math.sqrt)
2018-01-30
L = [Student('Tim', 99), Student('Bob', 88), Student('Alice', 99),100, 'hello']
L = filter(lambda kw: isinstance(kw, Student), L)
print sorted(L)
L = filter(lambda kw: isinstance(kw, Student), L)
print sorted(L)
2018-01-30
其实把前面的装饰器看懂了,我觉得这章丝毫没有问题,学习不要囫囵吞枣,得一步步脚踏实地过来,一步步程序一行代码都得看懂是怎么执行的,一味的模糊理解到最后综合起来什么都不懂,希望后面的慕友加油
2018-01-30
super(FooChild,self) 首先找到 FooChild 的父类(就是类 FooParent),然后把类B的对象 FooChild 转换为类 FooParent 的对象
2018-01-30