实例详解python高级函数的使用


本文摘自php中文网,作者零到壹度,侵删。

本篇文章给大家分享的是实例详解python高级函数的使用,内容挺不错的,希望可以帮助到有需要的朋友。

函数参数问题

三种基本情况

  • fun(a,b)

  • fun(a,b) b是可迭代对象

  • fun(a,**b) b是带有检索式迭代对象,在函数体内部解析的时候相当字典

1

2

3

4

5

6

7

8

9

10

11

ls = [i for i in range(10)]

#print(ls)

def fun1(a,*b):

    for i in b:

        print(a,i)

#fun1(1,*ls)

 

def fun2(name,age,**kw):

    print("name:",name,"age:",age,"other:",kw)

 

fun2('fanhaitao','26',参数= 'random')

1

**kw参数把键值对转换成字典的形式

匿名函数

lambda

  1. 没有return返回值,返回值就是表达式的值

  2. 函数没有名字,不用担心名字冲突

  3. 匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,在利用变量来调用该函数

1

2

3

4

5

6

7

fun3 = lambda x:x+1

print(fun3(99))

 

#100

fun4 = lambda x,y :x*x + y*y

print(fun4(3,4))

#25

装饰器@

这种在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)

没有参数的装饰器

1

2

3

4

5

6

7

8

9

10

11

#定义一个装饰器

def log(func):

    def wrapper(*args,**kw):

        print('call %s()' % func.__name__)

        return func(*args,**kw)

    return wrapper

@log

def now():

    print('2018-3-29')

     

now()

装饰器内部逻辑关系(调用顺序):log() -> return wrapper() -> return func() -> now()

含参数的装饰器

1

2

3

4

5

6

7

8

9

10

11

12

13

#定义一个装饰器

def log(text):

    def decorator(func):

        def wrapper(*args,**kw):

            print('%s %s():' % (text,func.__name__))

            return func(*args,**kw)

        return wrapper

    return decorator

@log("可爱的参数")

def now():

    print('2018-3-29')

 

now()

BiF内建函数

zip:将两个迭代对象合成一个迭代对象

注:多余的没有匹配到的变量会被舍弃

1

2

3

4

5

6

a = [1,2,3]

b = 'abcde'

for i in zip(a,b):

    print(i)

for i,j in zip(a,b):

    print("Index:",i,";Item:",j)

enumerate:返回的是迭代对象,由位置+元素构成

1

2

for i,j in enumerate('abcde'):

    print(i,j)

filter:过滤函数

两个参数,第一个是参数,第二个是可迭代对象,返回的值也是可迭代对象;参数中迭代对象在函数中是True是,值会保留,否者pass

1

print(list(filter(lambda x:(x*x+x+2)%8 == 0,range(100))))

map

用法和filter类似,区别如下:

  • 参数里的函数对每个迭代对象操作

  • 返回被操作过的对象

1

print(list(map(lambda x:x**2,range(5))))

reduce

  • 在functools库里

  • func接收2个参数,

reduce把结果继续和序列的下一个元素做累积计算

1

2

3

4

from functools import reduce

add = lambda x,y:x+y

ls = [i for i in range(101)]

print(reduce(add,ls))

#5050

相关推荐:

Python之高级函数

Python函数与高级语法合集

python函数高级用法

以上就是实例详解python高级函数的使用的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

如何对Python进行性能优化

Python中执行存储过程及获取返回值的方法介绍

零基础学Python怎么打开图片

Python如何把数字变成日期

不可错过的十本Python好书

Python有split函数吗

Python实现requests发送/上传多个文件的示例

Python实现去除列表中重复元素的方法

Python中关于日期加减法的操作详解

Python中赋值&浅拷贝&深拷贝的简单介绍(示例)

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...