Skip to content

Python的几种函数参数类型

Published: at 10:28 PM | 2 min read
# 位置参数,根据参数的传入顺序来赋值
def add(a, b):
    return a + b


# 默认参数,n就是默认参数,调用函数的时候可以不传
# 默认参数必须写在后面且指向不变对象
def power(a, n=2):
    s = 1
    for i in range(n):
        s *= a
    return s


# 可变参数,可以传多个不定个数的参数,还可以在list和tuple变量前加一个*号进行传入
def print_log(*logs):
    s = ''
    for log in logs:
        if len(s):
            s += ' | '
        s += log
    print(s)


# 关键字参数,类似如可变参数关键字参数也可以接受多个不固定参数,区别是它的参数都有一个名称
# 可以将字典当做关键字参数传入,前提是变量前增加两个**
def print_kw(**kw):
    for k, v in kw.items():
        print(k, v)


# 命名关键字参数,传参方式类似如关键字参数,但是参数名称和个数是固定的,也就是*号后面的参数
# 如果前面是可变参数,由于可变参数本来就有个*号,那么命名关键字参数的*号是可以省略的
def print_names(*, name, age):
    print(name, age)


# 参数组合
# 参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
def f1(a, b, c=0, *args, **kw):
    pass


def f2(a, b, c=0, *, d, **kw):
    pass


# 通用参数,下面这种函数适用于任意参数的调用方式(可变参数和关键字参数组合)
def f(*args, **kw):
    pass