Python 函数进阶(函数作为参数传递,匿名函数)

函数多返回值:(位置传参、关键字传递参数,不定长传参)

位置传参:调用函数时根据函数定义的参数位置来传递参数

def test_return(name,age,gender): #定义一个函数方法
#    print(name,age,gender)
#    return

# test_return("马远远",18,"男") #函数调用

 

关键字传递参数:函数调用时调用时通过“键 = 值” 形式传递参数。

def user_info(name,age,gender):
#    print(f"姓名是{name},年龄是:{age},性别是:{gender}")
#关键字参数
# user_info(name = '小王',age = 11,gender = '女')
# user_info('甜甜',gender = '女',age = 9) #例2

调用的时候可以通过输入元素的键值来调用参数的值,传参的时候,元素内容可以是无序的 

可以和位置参数混用,位置参数必须在前,且匹配参数顺序 如例2

缺省参数:

缺省参数也叫默认值参数,用于定义函数,为参数提供默认值,调用函数可不传默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)/

def user_info( age, gender,name = "马致远"): #
   print(f"姓名:{name},年龄是{age },性别是{gender}")
user_info(13,gender = '女') # 你没有给已经设定了默认值这里传递参数,他就会返回默认值的参数
user_info('小天',13,'女') #你给已经设定了默认值这里传递新的参数,新的参数就会覆盖掉你默认值传递的参数。

不定长传参: 不定长参数也叫可变参数,用于不确定调用的时候会传递多少个参数,(不传参数也可以)的场景。

#不定长 - 位置不定长, *号
# def user_info(*args):    #  arges 就如变量名一样,自己定义的, 
#    print(f"arges参数的类型是:{type(args)},内容是:{args}") #不定长定义的形式,会将传入的参数合并为一个元组
# user_info(1,2,3,'小明')

使用场景:当调用函数时不确定参数个数时,可以使用不定长参数

匿名函数: 

关键字(Lambda)

对于一些功能比较简单的函数我们可以使用匿名函数来进行定义

quadratic_sum = lambda x ,y :x * x + y *y

print(quadratic_sum(3,4))

我们通过lambda 关键字定义实现求平方和和功能的匿名函数, quadratic_sum 接受了,x的平方+y的平方和的数值。这种方式的优点呢,比常规写法更加简洁简短。

为什么称为匿名函数呢,因为定义lamdba表达式没有函数名,quadratic_sum是接收匿名函数的对象,不是函数名称。使用匿名函数时,只是适用一些函数体比较简单的场景,函数体比较复杂的时候不建议使用。

重点:

函数作为参数:函数作为参数传递,其实,我们学习的函数本身,也可以将函数自身作为参数传入另一个函数内。

啥意思呢? 就是你使用一个函数,可以把另一个函数作为参数来使用,以完成特定功能。

#定义一个函数,接受另一个函数作为传入参数
# def test_func(compute):# 接受参数
#    result = compute(1,2) #确定compute是函数
#    print(f"compute参数的类型是:{type(compute)}")
# #定义一个函数,准备作为参数传入另一个函数 
# def compute(x,y):
#     return x + y
# #调用,并传入参数
# test_func(compute)

 

 实在看不懂:

def add(x, y func):  #add 接受传入的(2,-1,abs) func 就变成了 abs

       return fun(x) + func(y)   #其实本质是返回abs(2)+ abs(-1)

print(add (2,-1,abs)   # abs 是求绝对值的内置函数,是python函数自己定义好的。 

总结:今天开始逐步放假,我还在写,我是不是特别棒!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值