天宫鹤

Python函数定义与函数调用中的单星号(*)与双星号(**)

1.函数定义中的单星号(*)与双星号(**),作用是收集参数。

单星号(*)——收集位置参数到元组中;双星号(**)——收集关键字参数到字典中。

2.函数调用中的单星号(*)与双星号(**),作用是分配参数。

单星号(*)——分配元组/列表给位置参数;双星号(**)——分配字典给关键字参数。

3.说明:只有在定义函数(允许可变数量的参数)或调用函数时(拆分字典或序列)使用,星号才能发挥作用。

 

# %%

def with_stars(**kwargs):
    print(kwargs['name'], 'is', kwargs['age'], 'years old。')


def without_stars(kwargs):
    print(kwargs['name'], 'is', kwargs['age'], 'years old。')


def without_stars2(name='唐僧', age=100):
    print(f'{name} is {age} years old。')


args = {'name': '孙悟空', 'age': 500}
with_stars(**args)  # 定义和调用函数时,都使用了**
without_stars(args)  # 定义和调用函数时,都未使用**
without_stars2(**args)  # 定义函数时未使用**,调用函数时使用了**


# 如果在定义和调用时都使用*或**,将只传递元组或字典。因此还不如不使用它们,还可省却些麻烦。

# %%

 

posted on 2024-11-13 07:11  GoGrid  阅读(5)  评论(0编辑  收藏  举报

导航