python高级特性
Posted monty12
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python高级特性相关的知识,希望对你有一定的参考价值。
一、列表生成式:
1、[x * x for x in range(1, 11)
if x % 2 == 0
]
2、应用:
在爬虫爬到站内网址时,一般用的是站内URI,所以是无法发起请求的,一般情况下,需要加上一个前缀地址,一半可以用列表生成器来做。
3、代码:
1 \'\'\' 2 func:列表生成 3 4 \'\'\' 5 #首先生成uri,类似于小说网站的格式 6 uri=[\'/article/\'+str(i)+\'.html\' for i in range(1,10)] 7 8 print(uri) 9 #一般上面的内容为爬虫爬到的 10 11 #下面是需要进行处理的内容 12 url=[\'http://biquge\'+i for i in uri] 13 14 print(url)
结果:
二、生成器:
关键点:是yeild关键字,普通函数是在流程执行完毕之后或者遇到return语句时候,才会退出执行。而生成器不同。生成器会在每次执行到yield定义的关键字时,会返回这个变量,然后再接着执行。其用途是在一个需要大量计算时,不必等到每个变量都计算完毕时,才会返回,而是计算一个返回一个。
代码演示:
1 \'\'\' 2 func:generator演示 3 \'\'\' 4 5 def getUpper(a): 6 for i in a: 7 yield i.upper() 8 9 if __name__==\'__main__\': 10 for i in getUpper([chr(i) for i in range(97,123)]): 11 print(i)
三、函数式编程:
1、filter函数:
2、匿名函数:
lambda x:x*x
3、装饰器:
其定义为接收一个函数作为参数,并返回一个函数。
(1)代码执行:
1 \'\'\' 2 func:装饰器练习 3 author:monty 4 \'\'\' 5 6 import functools 7 import datetime 8 9 #定义装饰器 10 def log(func): 11 @functools.wraps(func) 12 def wrapper(*args,**kw): 13 print(func.__name__+" is run:"+datetime.datetime.now().strftime(\'%Y-%m-%d %H:%M:%S\')) 14 return func(*args,**kw) 15 return wrapper 16 17 @log 18 def sum(a,b): 19 print(a+b) 20 21 22 if __name__==\'__main__\': 23 sum(1,2) 24 25 sum(100,200)
四、匿名函数:
语法格式:lambda x:x*x
以上是关于python高级特性的主要内容,如果未能解决你的问题,请参考以下文章