python中带*号的参数,一个星号,两个星号

avatar 2022年9月8日18:11:19 评论 263 次浏览

1.带一个星号(*)参数的函数传入的参数存储为一个元组(tuple)
2.带两个星号(*)参数的函数传入的参数则存储为一个字典(dict),并且再调用是采取a=1,b=2,c=3的形式
3.传入的参数个数不定,所以当与普通参数一同使用时,必须把带星号的参数放在最后。
4.函数定义的时候,再函数的参数前面加星号,将传递进来的多个参数转化为一个对象,一个星号转换成元组,两个星号转换成字典,相当于把这些参数收集起来
5.参数前加一个星号,将传递进来的参数放在同一个元组中,该参数的返回值是一个元组
6.参数前两个星号,将传递进来的参数放到同一个字典中,该参数返回值为一个字典

function_with_one_star(*d):
    print(d, type(d))
 
def function_with_two_stars(**d):
    print(d, type(d))
 
# 上面定义了两个函数,分别用了带一个星号和两个星号的参数,它们是什么意思,运行下面的代码:
function_with_one_star(1, 2, 3)
function_with_two_stars(a = 1, b = 2, c = 3)
 
# 结果如下
(1, 2, 3) <</span>class 'tuple'>
{'a': 1, 'c': 3, 'b': 2} <</span>class 'dict'>
 
dict_data ={"CAM_ID":"13","CAM_NAME":"999"}
def select_data(dict_data):
    ret = session.query(CAMINFO).filter_by(**dict_data).first()
    print(str(ret))
select_data(dict_data)
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: