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高级特性的主要内容,如果未能解决你的问题,请参考以下文章

python - 高级特性

Python3 高级特性

python高级特性-切片

python之高级特性

python高级特性

Python的高级特性(切片,迭代,生成器,迭代器)