理解 Python 函数中的 * 操作符的用法

2023-03-30 00:00:00 函数 理解 用法

在 Python 函数中,* 操作符有两种常见用法,分别是:

可变长度参数(Variable-length Arguments)
解包操作符(Unpacking Operator)
下面分别介绍这两种用法。

可变长度参数
可变长度参数指的是函数的参数个数不确定,可以接收任意多个参数的情况。在 Python 中,使用 * 操作符来定义可变长度参数,它可以将不定数量的参数收集到一个元组(tuple)中。

示例代码如下:

def concat(*args):
    result = ''
    for arg in args:
        result += arg
    return result

print(concat('pidan', 'code', '.com'))  # 输出 "pidancode.com"
print(concat('皮蛋', '编程'))  # 输出 "皮蛋编程"

在上面的示例代码中,concat() 函数使用了一个 *args 形参,这表示它可以接收任意多个参数,这些参数会被收集到一个元组中。函数中使用了一个循环,将元组中的所有参数拼接成一个字符串并返回。

解包操作符
解包操作符指的是将一个可迭代对象(如列表或元组)解包成单独的元素。在 Python 中,使用 * 操作符来进行解包操作。

示例代码如下:

values = ('pidan', 'code', '.com')
print(*values)  # 输出 "pidan code .com"

characters = ['皮', '蛋', '编', '程']
print(*characters)  # 输出 "皮 蛋 编 程"

在上面的示例代码中,values 和 characters 都是解包操作符,它们将一个元组和一个列表解包成了单独的元素。这样,我们就可以在函数调用、列表赋值等操作中方便地使用可迭代对象中的元素。

需要注意的是,解包操作符只能用在可迭代对象前面,不能用在可迭代对象后面。比如,下面的代码会报错:

values = ('pidan', 'code', '.com')
print(values*)  # 报错

相关文章