nickkkkkkk

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::
__author__ = "Alex Li"

#*args:接受N个位置参数,转换成元组形式
# def test(*args):
#     print(args)
#
# test(1,2,3,4,5,5)
# test(*[1,2,4,5,5])#  args=tuple([1,2,3,4,5])

# def test1(x,*args):
#     print(x)
#     print(args)
#
# test1(1,2,3,4,5,6,7)


#**kwargs:接受N个关键字参数,转换成字典的方式
# def test2(**kwargs):
#     print(kwargs)
#     print(kwargs['name'])
#     print(kwargs['age'])
#     print(kwargs['sex'])
#
# test2(name='alex',age=8,sex='F')
# test2(**{'name':'alex','age':8})
# def test3(name,**kwargs):
#     print(name)
#     print(kwargs)
#
# test3('alex',age=18,sex='m')

# def test4(name,age=18,**kwargs):
#     print(name)
#     print(age)
#     print(kwargs)
#
# test4('alex',age=34,sex='m',hobby='tesla')

def test4(name,age=18,*args,**kwargs):
    print(name)
    print(age)
    print(args)
    print(kwargs)
    logger("TEST4")



def logger(source):
    print("from %s" %  source)

test4('alex',age=34,sex='m',hobby='tesla')

 

非固定参数

若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数

args:接受N个位置参数,转换成元组形式

1
2
3
4
5
6
7
8
9
10
def stu_register(name,age,*args): # *args 会把多传入的参数变成一个元组形式
    print(name,age,args)
 
stu_register("Alex",22)
#输出
#Alex 22 () #后面这个()就是args,只是因为没传值,所以为空
 
stu_register("Jack",32,"CN","Python")
#输出
# Jack 32 ('CN', 'Python')

还可以有一个**kwargs,接受N个关键字参数,转换成字典的方式

1
2
3
4
5
6
7
8
9
10
def stu_register(name,age,*args,**kwargs): # *kwargs 会把多传入的参数变成一个dict形式
    print(name,age,args,kwargs)
 
stu_register("Alex",22)
#输出
#Alex 22 () {}#后面这个{}就是kwargs,只是因为没传值,所以为空
 
stu_register("Jack",32,"CN","Python",sex="Male",province="ShanDong")
#输出
# Jack 32 ('CN', 'Python') {'province': 'ShanDong', 'sex': 'Male'}
posted on 2018-05-02 15:34  nickkkkkkk  阅读(487)  评论(0)    收藏  举报