Python基础学习Ⅱ

Python基础学习Ⅱ  

1.py函数式编程

不是纯函数式编程,允许有变量。支持高阶编程,函数也可以作为变量传入。支持闭包。支持有限数量的匿名函数。

2.高阶函数

变量可以指向函数。

函数名其实是指向函数的变量。

高阶函数是能接受函数做参数的函数。

3.常见的高阶函数

(1)map()

使用方法:map(f,sequence)。

作用:返回每一个元素都经过f函数的结果sequence。

(2)reduce()

使用方法:reduce(f,sequence,[n0])。

作用:f是两参数一返回的函数,通过迭代sequence里面的值,返回最终结果。

(3)filter()

使用方法:filter(f,sequence)。

作用:f为返回布尔值的函数,其筛选作用,返回筛选出的集合。

(4)sorted()

使用方法:sorted(sequence, [f])。

作用:返回排序后的集合。

注意:传入f的参数x和y,若x在前返回-1,若y在前染回1,相等返回0。

4.返回函数的函数

可通过'return 函数名'的方式返回一个函数。

5.闭包

闭包指内层函数应用了外层函数的变量。

6.匿名函数

格式:lambda 参数: 表达式

匿名函数只能有一个表达式,且该表达式就是返回值。

例子:sorted([1, 3,9, 5, 0], lambda x,y: -cmp(x,y))

7.装饰器使用

装饰器放在函数前,起到简化的作用。

@函数名,可实现新函数的覆盖.

@log,打印日志

@performance,检测性能

8.装饰器的编写

decorator是一个高阶函数,接收一个函数,返回一个新函数。

例子:def log(f):

def fn(*args, **kw):

print 'call ' + f.__name__ + '()...'

return f(*args, **kw)

return fn

装饰器可带参定义。

9.模块和包的使用

模块名即所在的py文件名。

包为py文件的文件夹。

引用别的包,模块使用import包名、模块名,使用时必须用写出包名和模块名。

注意:python包区别于普通目录的地方是,每个包下必须有__init__.py这个文件。

10.导入模块

使用'import 模块'直接导入模块。

使用'from 模块 import 函数'导入模块中的函数。

使用'from 模块 import 函数 as 别名'导入模块中的函数,并取别名。

动态导入模块使用‘try: 语句 except ImprotError: 错误时语句’格式。

安装第三方模块,使用'pipinstall 模块名'。

11.类

class关键字,与C++不同,类的属性可由实例直接创建。类的属性也可以随时修改和添加,修改后所有无冲突实例也随之修改。

创建格式'class 类名(所继承的类):'。

构造函数__init__(),第一个参数必须为self(可为其他名字),表示自身。

对属性访问权限的限制是用属性名,以双下划线开头的属性不能被外部访问,如'__name'。

类的实例方法定义,第一个参数必须为self。类方法的定义前需要加@classmethod,第一参数为cls。实例方法建立了实例才能应用,类方法直接就可以使用。

子类调用父类方法使用super()。

python可多重继承。

12.类的特殊方法

常用特殊方法:

print__str__

直接输入 __repr__

比较 __cmp__

个人 __len__

13.类的其它

(1)用装饰器将get和set函数变为属性

get函数前加@property,set前加@score.setter

(2)用__slots__指定类允许的属性列表
(3)用__call__函数将类变为可调用

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值