print('*args:\n')
# *args 实质就是将函数传入的参数,存储在元组类型的变量args当中
def fun_var_args(param, *args):
"""可变参数"""
print("param:", param)
print("args:", args, 'type:', type(args))
for value in args:
print("other arg:", value)
fun_var_args(1, "two", 3, 9, "Hi")
print('******************************************')
def fun_input_list(var1, var2, var3):
print(var1, var2, var3)
var_list = ["second", 3]
fun_input_list(1, *var_list) # 解包之后传参
print('******************************************')
print('**kwargs:\n')
# **kwargs 实质就是将函数的参数和值,存储在字典类型的kwargs变量中
def fun_var_kwargs(param, **kwargs):
"""通过字典格式存储可变参数"""
print("param: %s" % param)
print("kwargs:", kwargs, 'type:', type(kwargs))
for key in kwargs.keys():
print(kwargs[key])
fun_var_kwargs(1, var1="second", var2=35, var3="third", g=9)
print('******************************************')
def fun_input_dic(var1, var2=2, var3=3):
print(var1, var2, var3)
dic_input = {"var2": "second", "var3": "third"}
fun_input_dic(1, *dic_input) # 此时传入字典的键
fun_input_dic(1, **dic_input) # 此时传入字典的值
print('******************************************')
def fun_kwargs(**kwargs):
"""可变参数调用方法, 个人觉得该方法最常用"""
fun_input_dic(**kwargs)
inputs = {'var1': 'First', "var3": 'Third'}
fun_kwargs(**inputs)
"""
输出结果:
*args:
param: 1
args: ('two', 3, 9, 'Hi') type: <class 'tuple'>
other arg: two
other arg: 3
other arg: 9
other arg: Hi
******************************************
1 second 3
******************************************
**kwargs:
param: 1
kwargs: {'var1': 'second', 'var2': 35, 'var3': 'third', 'g': 9} type: <class 'dict'>
second
35
third
9
******************************************
1 var2 var3
1 second third
******************************************
First 2 Third
"""
python不定长参数*args和**kwargs使用
最新推荐文章于 2023-06-27 12:32:57 发布