-
reduce(f,list)接收一个函数f,和一个list。这个函数f必须接收两个参数,reduce对list的每个元素反复调用函数f,最终返回结果值。
案例:
def f(x, y): return x + y
调用 reduce(f, [1, 3, 5, 7, 9])时,
先计算头两个元素:f(1, 3),结果为4; 再把结果和第3个元素计算:f(4, 5),结果为9; 再把结果和第4个元素计算:f(9, 7),结果为16; 再把结果和第5个元素计算:f(16, 9),结果为25; 由于没有更多的元素了,计算结束,返回结果25。
查看全部 -
map()接受一个函数f和list,函数f作用在list上的每个元素,最后返回一个新的list
案例:
def f(x): return x*x print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
查看全部 -
多态不理解
查看全部 -
函数式编程:
高阶函数的特点:函数可以作为一个变量传入另一个函数
利用闭包来返回函数
匿名函数的限制:只能有一个表达式,表达式的结果就是匿名函数的返回值
装饰器:可以把一个函数装饰成另一个函数,以便在运行的时候动态的增加函数的功能
模块和包:
模块的目的是为了避免名字冲突,包可以看做一种具有目录层次的模块如何引用模块?import
如何使用__future__?来引用新版本的特性
面向对象编程:
类和实例,类是模块,实例是根据模块创建的对象属性和方法,可以把属性看成一个方法,是一个绑定到实例的函数对象
类的属性和实例的属性,在编程中不要重名
类的继承:
继承的目的是为了代码的复用
多态:从一个父类派生出多个子类的时候,可以使子类具有各自不同的行为,这种行为就叫做多态
多重继承
定制类:
目的是为了让我们编写的类可以应用到普通的函数中,为了实现这个目的,就需要实现特殊方法,特殊方法还可以用做类型转换,还可以通过__call__方法把一个实例变成一个跟函数一样可以调用的对象查看全部 -
@log 相当于函数的调用
查看全部 -
for k, v in kw.iteritems():
setattr(self, k, v)
查看全部 -
getattr()获取对象属性 和 setattr( )函数设置对象属性
查看全部 -
包就是文件夹,模块就是xxx.py文件,包可以有多级
查看全部 -
子类是父类,父类不是子类
查看全部 -
sorted_ignore_case = functools.partial(sorted, reverse=Ture, key=lambda x:x.upper()) print(sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit']))
查看全部 -
f1, f2, f3 = count()如何理解:
因为count()函数返回的是一个“list”,所以上述代码就表示list中的值依次赋值给f1,f2,f3
查看全部 -
新类想要增加或改写属性,那么不需要重新写,只需要继承旧的类就好了
查看全部 -
因为方法也是一个属性,所以,它也可以动态地添加到实例上,只是需要用 types.MethodType() 把一个函数变为一个方法
查看全部 -
类里面的实例方法实际上是一个函数
查看全部 -
平方根函数 是在math 模块里面 需要引用 math.sqrt()
查看全部
举报