Python 函数的参数形式

形参:在定义函数时,括号内的参数成为形参
特点:形参就是变量名
def foo(x,y): #x=1,y=2
print(x)
print(y)

实参:在调用函数时,括号内的参数成为实参
特点:实参就是变量值
foo(1,2)

在调用阶段实参(变量值)才会绑定形参(变量名)
调用结束后,解除绑定

一、、函数形参分为:

    1、位置形参

 2、关键字形参

二、函数实参分为:

    1、位置实参

 2、关键字实参

def foo(x,y): #x、y为位置形参
    print(x)
    print(y)
foo(1,2)#位置实参

def foo(name,age): #x、y为关键字形参
    print(name)
    print(age)
foo(name=1,age=2)#位置形参

三、注意事项

1、位置实参必须在关键字实参的前面

2、一定不要给同一个形参赋多次值

四、默认参数

不用给函数传递参数,函数的参数默认带有值

def foo(x=1,y=2): #x、y为位置形参
    print(x)
    print(y)
foo()

注意事项:

默认参数必须放在位置参数之前

默认参数只能在函数定义阶段赋值一次,且仅有一次

默认参数应该定义为不可变数据类型

五、可变长参数类开

可变长参数指的是实参的个数多了
实参无非位置实参和关键字实参两种

#形参必须要两种机制来分别处理按照位置定义的实参溢出的情况:*
#跟按照关键字定义的实参溢出的情况:**

1、形参*接收多出来的位置参数转化为无组

2、多出来的关键字参数被**接收转化为字典

def foo(x,y,*args): #nums=(3,4,5,6,7)
    print(x)
    print(y)
    print(args)

foo(1,2,3,4,5,6,7) 

def foo(x,y,**kwargs): #nums={'z':3,'b':2,'a':1}
    print(x)
    print(y)
    print(kwargs)
foo(1,2,z=3,a=1,b=2) #**

六 命名关键参数

即在*后面定义的形参称为命名关键字参数,必须是被以关键字实参的形式传值

def foo(name,age,*args,sex='male',group):
    print(name)
    print(age)
    print(args)
    print(sex)
    print(group)

foo('alex',18,19,20,300,group='group1')

 

posted @ 2017-07-21 01:43  刘小伟  阅读(4962)  评论(0编辑  收藏  举报