美文网首页
Python38 传递函数的参数

Python38 传递函数的参数

作者: 秋雨夏磊 | 来源:发表于2022-08-02 06:29 被阅读0次

    把函数作为其他函数的参数

    像使用变量一样使用这个函数

    #定义一个求平方的函数

    def squares(x):

    return x **2

    #在定义一个转换函数

    def convert(func,seq):

    return [func(eachNum)for eachNumin seq]

    #定义一个列表,里面有4个整数,1,2,3,4的数值

    num = [4, 3, 2, 1]

    #调用转换函数covert,传递两个参数,一个是float函数,一个是num列表,float函数里面的参数来自于num列表中来,  并将调用函数转换后的结果输出

    print(convert(float, num))

    #调用转换函数covert(),传递两个参数,一个是squares函数,一个是num列表,squares函数里面的参数来自于num列表中,将函数调用的结果输出

    print(convert(squares, num))

    --------------------------------------------------------------------------------------------------------------------------

    #匿名函数也可以,匿名函数,冒号前面是函数的参数,冒号后面是函数体,以关键字lambda开始,

    # 将函数运行后的值赋值给变量squares,相当于给函数起了一个别名

    squares =lambda x: x **2

    #定义一个转换函数,传递两个参数,一个是函数,一个是列表类型的参数

    def convert(func,seq):

    #返回的结果是将列表里面的数值通过函数func()进行转换

        return [func(eachNum)for eachNumin seq]

    #创建一个列表,里面有五个整数,分别是5,6,7,8,9

    num = [5, 6, 7, 8, 9]

    #调用转换函数,传递的函数是float()转换函数,转换的参数值来自于列表num中,并将函数调用后的结果

    print(convert(float,num))

    #调用定义的转换函数,传递匿名函数的别名squares,该函数的参数来自于num列表中,并将函数调用的结果输出到屏幕上

    print(convert(squares, num))

    输出结果为:

    [5.0, 6.0, 7.0, 8.0, 9.0]

    [25, 36, 49, 64, 81]

    -----------------------------------------------------------------------------------------------------

    #可以像使用变量一样使用函数

    squares =lambda x: x **2

    squares2 = squares

    print(squares2(2))

    print(squares(2))

    --------------------------------------------------------------------------------------------------------

    #不要给变量和函数同名

    num =1

    print('[' +str(num) +']')

    num =1

    str ='Hello'

    print('[' + str(num) +']')

    运行到时候报错,TypeError: 'str' object is not callable

    类型错误:字符串str对象不可以调用

    相关文章

      网友评论

          本文标题:Python38 传递函数的参数

          本文链接:https://www.haomeiwen.com/subject/bftrwrtx.html