python 函数参数理解

函数参数

定义:

完成函数功能需要的重要参数,需外部资源

参数分类:

实参:调用函数。在括号内传入的实际值,值可以是常量,变量,表达式或三者的组合
形参:定义函数,在括号()内声明的变量,用来接收外部的值

注意:形参随着函数的调用而产生,随着调用结束销毁。

实参:

1.位置实参:不用明确形参名的传参方式,一定按照位置给形参传值。
2.关键字实参:必须明确形参名字与值为形参传值,不必按照位置

注意:二者混用

1.关键字实参必须出现在位置参数后
2.多个位置实参还是按照位置传参
3.关键字实参给没有从位置实参拿到值的形参传值,可以不按照指定顺序
def fn(a,b,c,d,e,f):
  print(a,b,c,d,e,f)

fn(10,20,22,e=100,f=500,d=200)

位置形参的范畴

位置形参:位置形参可以由位置实参和关键字实参来传值

默认形参:以由 位置实参 与 关键字实参 来传值,还可以不用传值(采用自身默认值)

混合:位置形参默认形参同时存在,默认形参必须在后

def fn2(a,b,c=10,d=20):
  print(a,b,c,d)

位置形参必须传值,默认形参分情况

fn2(100,200,c=1000)

可变长位置形参:

可变长形参会以 元祖 的形式接受 位置形参 与默认形参未完全接受完的,所有传入的位置形参,用索引来取第几个

注意:

1、可变位置形参只能由位置实参来传值

2、可变长形参只接受位置实参的值,位置实参必须在关键字实参之前,导致默认形参只能由位置形参来传值

def fn(a, b=10, *args):
    print(a, b)
    print(args)
    
fn(1,20,100,200)
#1,20,(100,200)

del fn(*args):
  print()
a='ab'
fn(*a)
#('a','b')

关键字形象范畴

出现的’’*’'以后

def fn(a, b=10, *, c, d=20, e)pass
c,d,e都是出现在*之后,都是关键字形参,由于必须由 关键字实参 来传值,没有顺序的强行要求
可变长关键字形参:用来接收没有被关键字形参接收完的关键字形参,也只能由关键字实参来传值
#用字典来存放数据
def fn(**kwargs):
    print(kwargs)
fn(a=10,b=20)  # {'a': 10, 'b': 20}

dic = {'x': 100, 'y': 200}
fn(**dic)  # {'x': 100, 'y': 200}


参数总结

def fn(a, b, c=10, *args, d, e=20, f, **kwargs):
    pass
# 位置形参:a、b
# 默认形参:c
# 可变长位置形参:args
# 无初值关键字形参:d、f
# 有初值关键字形参:e
# 可变长关键字参数:kwargs


# 1.位置形参与默认形参: 能用 位置实参 关键字实参 传值
# 2.可变长位置形参:只能 位置实参 传值
# 3.所以关键字形参:只能 关键字实参 传值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值