Python高阶函数和eval函数

枫铃3年前 (2021-06-26)Python237

一、介绍

高阶函数:变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数。

二、具体实用

其实说白了,高阶函数功能就是:把函数本身当做一个参数,传到另一个函数中,然后在这个函数中做处理。代码如下:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#普通函数
def test_1(a,b):
    return a+b
 
#高阶函数
def test_2(a,b,f):
    return f(a)+f(b)
 
print("------test_1-----")
res = test_1(1,-3)
print(res)
print("------test_2-----")
res = test_2(1,-3,abs)  #把abs这个内置函数当做参数传进去
print(res)
 
#输出
------test_1-----
-2
------test_2-----
4

那这个高阶函数具体在什么地方用呐?这个我们以后用到再说,这边先暂时做了解。

三、eval()函数

在我们使用一些类似于字典的字符串时,虽然它看起来很像字典,但是在它的最外层多了引号,说明它是字符串,但是我们如何把它转换成字典呐,这就用到了eval()函数,看看eval()函数是如何把字符串转换成字典的,下面就来看看见证奇迹的时刻:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#定义一个类似于字典的字符串,把值赋给arg
>>> arg = '''{
            'backend': 'www.oldboy.org',
            'record':{
                'server': '100.1.7.9',
                'weight': 20,
                'maxconn': 30
            }
        }'''
#这边根据键取值报错,说明它是一个字符串,不是字典
>>> arg["backend"]
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: string indices must be integers
#通过eval()函数把字符串转成字典
>>> arg = eval(arg)
#显示的类型是字典
>>> type(arg)
<class 'dict'>
>>> arg
{'record': {'server': '100.1.7.9', 'weight': 20, 'maxconn': 30}, 'backend': 'www.oldboy.org'}
#通过键能获取对应的值,说明字符串成功转成字典
>>> arg["backend"]
'www.oldboy.org'

相关文章

Python读写CSV文件

CSV(Comma-Se...

Python中对象的引用与复制

在python进行像b...

6种Python字符串反转方式

1倒序输出 s ...

python字符串驻留(intern)机制

对于短字符串࿰...

Python-functools (reduce,偏函数partial,lru_cache)

1、functools模块—reduce() reduce方法: reduce方法,就是减少 可迭代对象不能为空࿰...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。