1. *号用在形参
1.1. *args
# 主要用于不知道函数使用者会传递多少个参数,因此定义这个*last_name。
def get_name(first_name, *last_name):
print(last_name, type(last_name))
get_name('Qiu', 'J','A') 1.2. **kwargs
主要用于向函数中传递关键字参数
def get_info(**kwargs):
print(kwargs, type(kwargs))
get_info(name="Mary", age=18, gender="female") 1.3. args和kwargs同时使用
注意 args一般在前,*kwargs一般在后。(因为传递参数的时候,关键字参数相对于非关键字参数是放置在后面进行传递的。)
def get_all_info(name, *scores, **info):
print("scores", scores, type(scores))
print("info", info, type(info))
get_all_info('mary', 100, 99, 100, gender="female") scores (100, 99, 100) <class 'tuple'>
info {'gender': 'female'} <class 'dict'>2. 星号用于实参
2.1. 使用args和kwargs传递参数
传递元组或者列表参数。
def test_args_kwargs(arg1, arg2, arg3):
print(arg1, arg2, arg3)
args = (1,2,3)
test_args_kwargs(*args) 传递字典参数
# 这里的键名称需要和函数的参数名一致。
def test_args_kwargs(arg1, arg2, arg3):
print(arg1, arg2, arg3)
kwargs = {
"arg1":4,
"arg2":5,
"arg3":6
}
test_args_kwargs(**kwargs) 
京公网安备 11010502036488号