day3-高阶函数和eval()函数
一、介绍
高阶函数:变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数。
二、具体实用
其实说白了,高阶函数功能就是:把函数本身当做一个参数,传到另一个函数中,然后在这个函数中做处理。代码如下:
#普通函数 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()函数是如何把字符串转换成字典的,下面就来看看见证奇迹的时刻:
#定义一个类似于字典的字符串,把值赋给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'