Python之路【第三篇】:Python基础(16)——函数动态参数

# 动态参数:
# * 1星默认将传入的参数,全部放置在元组中,f1(*[1`1,22,33,44])
# 带1个星的用来处理那些默认按照顺序传的值

# # #示例
# def func(*args):
# print (args,type(args))
# # 执行方式一
# func(11,33,4,4454,5)
# # 执行方式二
# li = [11,2,2,3,3,4,54]
# func(*li)
# # 输出
# # (11, 33, 4, 4454, 5) <class 'tuple'>
# # (11, 2, 2, 3, 3, 4, 54) <class 'tuple'>


# #例一
# 动态参数——普通传参数
# def f1(*args):
# print(args,type(args))
#
# f1(11,22,"eric")
# # 输出
# (11, 22, 'eric') <class 'tuple'>


# #例二
# def f1(*args): #如果函数定义里面有星号*,args就会有特殊的功能,不管函数传递什么参数都会赋值给args元组,作为其中的元素。
# print(args,type(args))
# f1(11)
# li = [11,22,"eric"]
# f1(li,'33') #传递的参数里面,Li是一个元组,元组里面的值是一个列表
# # 输出
# (11,) <class 'tuple'>
# ([11, 22, 'eric'], '33') <class 'tuple'>


# # 例三
# def f1(*args): #形式参数里面有星号*,不管函数传递什么参数都会赋值给args元组,作为其中的元素。
# print(args,type(args))
# li = [11,22,"eric",'33',]
# f1(li) #不加星号*,是把整个列表作为一个元素给插入到元组里面
# f1(*li) #加星号*,是把列表里面的每一个元素都转化到元组的元素里面
# # # 注意以上这两个之间的差别。
# li = "alex"
# f1(*li) #li是一个字符串的情况,有*相当于内部是一个for循环,把字符串挨个插入到元组里面。
# # 输出
# # ([11, 22, 'eric', '33'],) <class 'tuple'>
# # (11, 22, 'eric', '33') <class 'tuple'>
# # ('a', 'l', 'e', 'x') <class 'tuple'>
原文地址:https://www.cnblogs.com/jiangnanmu/p/5536697.html