1. 可变参数
可变参数就是允许在调用参数的时候传入多个(≥0个)参数
# 可变参数,参数nums接收到的是一个tuple(这些参数在传入时被自动组组装为一个元祖)
def calc(*nums):
sum = 0
for n in nums:
sum += n
return sum
>>> calc(1, 2, 3)
7
>>> my_ls = [1,2,3]
>>> calc(*my_ls)
7
2. 关键字参数
关键字参数允许在调用时以字典形式传入0个或多个参数(注意区别,这里是字典),在传递参数时用等号(=)连接键和值
# 用两个星号表示关键字参数
def person_info(name, age, **kw):
print("name:", name, "age:", age, "other:", kw)
>>> person_info("Xiaoming", 12)
name: Xiaoming age: 12 other:{}
>>> person_info("Dahuang", 35, city = "Beijing")
name: Dahuang age: 35 other: {'city':'Beijing'}
3. 命名关键字参数
命名关键字参数在关键字参数的基础上限制传入的的关键字的变量名,需要一个用来区分的分隔符*,它后面的参数被认为是命名关键字参数
# 这里星号分割符后面的city、job是命名关键字参数
person_info(name, age, *, city, job):
print(name, age, city, job)
>>> person_info("Alex", 17, city = "Beijing", job = "Engineer") # city job 传参必须指定key
Alex 17 Beijing Engineer