理解 Python 函数中的 * 操作符的用法
在 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*) # 报错
相关文章