函数的参数

#形参:在定义阶段括号内指定的参数,相当于变量名

#实参:在调用阶段括号你传人的值称之为实参,相当于值

#在调用阶段,实参的值会绑定给形参,在调用结束后解除绑定

def foo(x,y):  # x=1 y=2
    print(x,y)
foo(1,2)

#在python中参数的分类:

#1.位置参数:按照从左到右的顺序依次定义的参数

#位置形参:必须被传值,多一个少一个都不行

#位置实参:与形参一一对应传值

#2关键字参数:在函数调用时,按照key=value 的形式定义的实参

#特点:指名道姓的给形参传值,不在依赖与位置

def foo(name,age,sex)
    print(name,age,sex)
foo(sex='male',age=18,name='agon')

#关键字实参和位置实参的混用注意点:

#1)关键字实参必须在位置参数的后面

#2)不能被同一个参数赋值多次

#3默认参数:在函数定义阶段,就已经为形参赋值了

#特点:定义阶段已经有 值意味着调用阶段可以不用传值

def foo(x,y=1):
    print(x,y)

#注意:

#1)默认参数必须放到位置形参后面

def register(name,sex='nale',age):
print(name,age,sex)

#2)默认参数的值只在定义时被赋值一次

#3)默认参数值通常应该时不可变类型

res = 1
def foo(x,y=res):
    print(x,y)
res = 10
foo("aaa")

#4可变长参数,在调用函数时,实参值的个数不固定

#实参的形式有,位置实参和关键字实参

#形参的解决方案:*,**

#*args的用法
def foo(x,y,*z):  #z=(3,4,5,6)
    print(x,y)
    print(z)
#foo(1,2,3,4,5,6)
foo(1,2,*[3,4,5,6])  # 两者等价
​
#**kwargs
def foo(x,y,**kwargs)  # kwargs ={'c':5,'a':3,'b':4}
    print(x,y)
    print(kwargs)
foo(y=2,x=1,a=3,b=4,c=5)
foo(y=2,**{a=3,b=4,c=5})  # 两者等价

#5命名关键字参数,指的是定义在*后的参数,该参数必须被传值(除非有它的默认值),而且必须按照k=v的形式

def foo(x,y,*,m,n):
    print(x,y)
    print(args)
    print(m,n)
foo(1,2,3,n=4,m=3)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值