1 用法
在定义函数时,加上这样一个形参 "*形参名",就可以传递任意数量的实参啦:
1
2
3
4
|
def make_tags( * tags): '''为书本打标签''' print ( '标签:' + str (tags)) make_tags( '艺术' , '艺术史' ) |
运行结果:标签:('艺术', '艺术史')
形参名 *tags 中的星号会让 Python 创建一个名为 tags 的空元组, 并将函数所收到的所有值都封装在这个元组中 。
注意:即便函数只收到一个值,也会被放入元组中。
2 联合位置实参与任意数量实参
如果要让函数接受多种类型的实参, 那就必须在函数定义中将接收任意数量实参的形参定义放在最后 。因为 Python 会先匹配位置实参和关键字实参, 然后再将多余的实参放入最后一个形参元组中 。
1
2
3
4
5
6
|
def make_tags(book_name, * tags): '''为某本书打标签''' print ( 'book_name=' + book_name) print ( 'tags=' + str (tags)) make_tags( '世界美术名作二十讲 : 插图珍藏本' , '艺术' ) make_tags( '世界美术名作二十讲 : 插图珍藏本' , '艺术' , '艺术史' ) |
运行结果:
book_name=世界美术名作二十讲 : 插图珍藏本
tags=('艺术',)
book_name=世界美术名作二十讲 : 插图珍藏本
tags=('艺术', '艺术史')
3 任意数量关键字实参
有时候,预先并不清楚传递给函数的会是什么样的参数。 这时, 我们就可以将函数编写成能够接受任意数量的键—值对。
1
2
3
4
5
6
7
8
9
10
|
def create_account(name, pwd, * * others): '''创建账户''' account = {} account[ 'name' ] = name account[ 'pwd' ] = pwd for key, value in others.items(): account[key] = value return account account = create_account( '早安' , '1' , sex = '女' , age = '20' ) print ( 'account=' + str (account)) |
运行结果:
account={'name': '早安', 'pwd': '1', 'sex': '女', 'age': '20'}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.jianshu.com/p/3a67c148f526