python中实现函数不定长函数参数列表一般采用星号*,而星号又有两种方式:

  • 单星号*一般在不指定参数时使用,而参数会以元祖tuple的形式传入,且各个参数会维持原有参数类型
  • 双星号**一般用于全部以指定参数传入的情况,而参数会以字典dit的形式传入,且各个参数维持原有参数类型

1 单星号

代码示例:

def call_tuple(*args):
    print('不定长可变参数:元祖')
    for x in args:
        print(x, type(x))


if __name__ == '__main__':
    call_tuple(1,2,3,4,'ssss')

输出结果:

不定长可变参数:元祖
1 <class 'int'>
2 <class 'int'>
3 <class 'int'>
4 <class 'int'>
ssss <class 'str'>

2 双星号

代码示例:

def call_dit(**args):
    print('不定长可变参数:字典')
    for value in args.values():
        print(value, type(value))

if __name__ == '__main__':
    call_dit(name='lihao',age=18,sex='男')

输出结果:

不定长可变参数:字典
lihao <class 'str'>
18 <class 'int'>
男 <class 'str'>