zoukankan      html  css  js  c++  java
  • 函数和常用模块【day04】:高阶函数(七)

    本节内容

    1、介绍

    2、具体实用

    3、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'
  • 相关阅读:
    CloudStack 4.2 与CloudStack 4.1二级存储API发生变化
    添加虚拟机磁盘扩容步骤
    NAT概述
    CloudStack全局参数
    在 Web 项目中应用 Apache Shiro
    使用 Spring Security 保护 Web 应用的安全
    获取浏览器的homepage
    剑指offer系列——2.替换空格
    剑指offer系列——1.二维数组中的查找
    JDK下载需要Oracle账号登录问题
  • 原文地址:https://www.cnblogs.com/luoahong/p/9889554.html
Copyright © 2011-2022 走看看