Python(48)_函数参数

1  多个参数

#-*-coding:utf-8-*-
'''
 1、按位置传递多个参数
 2、
'''
#
def my_sum(a,b):
    res = a+b
    return res
'''传递方式1,按照位置传参'''
#ret = my_sum(1,2)
'''站在实参的角度上,按照参数传参'''
ret = my_sum(b=3,a=9)
print(ret)

'''混着用可以,但是必须先按照位置传参,再按照关键字传参
   不能给同一个参数传多个值
'''
# ret = my_sum(2,a=1),不可以!

# my_sum(a=1,2) # 不可以!!!

2  位置参数和默认参数

#-*-coding:utf-8-*-

'''站在形参角度
   1、位置参数,必须传,且有几个参数就传几个值
   2、默认参数,如果传了,就用传的,没传就用默认的
   按位置传参
   按关键字传参
   注意:定义函数参数的时候,必须先定义位置参数,再定义默认参数
'''
def classmate(name,sex=''):
    print('%s : %s'%(name,sex))
classmate("bowen")
classmate("wenwen",'')
classmate('bowen1')
classmate("bowen2")
classmate("bowen3")
classmate(sex='',name='bowen22')


3   动态参数   *args,接收按照位置传参的值,组织成一个元组


#-*-coding:utf-8-*-

'''
动态参数
 *不能少,表示动态的!
 参数名args,这是约定的,比入print()函数
 定义参数的顺序:先定义位置参数
                在定义动态参数
                最后定义默认参数
'''
def sum(*args):
    n = 0
    for i in  args:
        n +=i
    return  n
print(sum(1,2))
print(sum(1,2,3))

4   **kwargs ,接收,组织成一个字典形式的

#-*-coding:utf-8-*-

'''
动态参数
 *不能少,表示动态的!
 参数名args,这是约定的,比入print()函数
 定义参数的顺序:先定义位置参数
                在定义动态参数
                最后定义默认参数
                *不能按关键字传递
'''
def func(**kwargs):
   print(kwargs)
func(a = 1,b=2,c=3)
func(a = 1,b=2)
func(a=1)


5   动态参数混用

#-*-coding:utf-8-*-

'''
动态参数
混合用,最无敌
不能换位置
'''
def func(*args,**kwargs):
   print(args,kwargs)
func(1,2,3,4,5,a='aaaa',b='bbb')


6   默认参数混合动态参数时的传参顺序

#-*-coding:utf-8-*-

'''
动态参数
混合用,最无敌
不能换位置,*必须在**之前!这是之前约定好的
'''
def func(*args,default=6,**kwargs):
   print(args,default,kwargs)
func(1,2,3,4,5,default=8,a='aaaa',b='bbb')


7  * 号对于实参和形参的不同作用

#-*-coding:utf-8-*-

'''
站在形参的角度上,给变量加上*,就是组合所有传来的值
'''
def func(*args):
    print(args)
func(1,2,3,4,5)
l = [1,2,3,4,5]
func(l[0],l[1],l[2])
'''站在实参角度上给序列加上*号,就是将这个序列按照顺序打散'''
func(*l)


8  **对于实参和形参的作用

#-*-coding:utf-8-*-

'''
站在形参的角度上,给变量加上**,就是组合所有传来的值
'''
def func(**kwargs):
    print(kwargs)
func(a=1,b=2)
d = {'a':1,'b':2}
func(**d)
'''站在实参角度上给序列加上**号,就是将这个序列按照顺序打散'''

9  函数的注释

猜你喜欢

转载自www.cnblogs.com/sunnybowen/p/10230254.html