zoukankan      html  css  js  c++  java
  • 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

      

  • 相关阅读:
    12
    11
    10
    9
    8
    7
    6
    5
    4
    3
  • 原文地址:https://www.cnblogs.com/monty12/p/9978718.html
Copyright © 2011-2022 走看看