• day03-高阶函数、eval函数


    1、高阶函数

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

     

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

     1 def test_1(a,b):
     2     return a+b
     3 
     4 #高阶函数
     5 def test_2(a,b,f):
     6     return f(a)+f(b)
     7 
     8 print("------test_1-----")
     9 res = test_1(1,-3)
    10 print(res)
    11 print("------test_2-----")
    12 res = test_2(1,-3,abs)  #把abs(求绝对值)这个内置函数当做参数传进去
    13 print(res)

    #输出

    ------test_1-----

    -2

    ------test_2-----

    4

    2、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'

  • 相关阅读:
    原创 爱因斯坦迷题及推导过程
    惊闻姑姑家女婿去世,哀叹生命之脆弱,死亡如此接近
    京东自营预售逻辑
    自营SKU绑定逻辑
    自营结算解释&对账逻辑
    CPS逻辑
    京东搜索结果数据异常
    C++静态库中使用_declspec(dllexport) 不能导出函数的问题
    HTTP+SVN访问速度慢的问题
    Python log
  • 原文地址:https://www.cnblogs.com/Study-Blog/p/6681521.html
Copyright © 2020-2023  润新知