Python 函数具有非常多的参数形态,刚开始接触时很多人不一定了解所有参数的含义。
位置参数
这个很简单吧,跟其他语言都是一样的。
1 2 3 4 5 6 7 8 9
| def stock_information(code, name): print('code:', code) print('name:', name) stock_information('000001.SZ', '平安银行')
code: 000001.SZ name: 平安银行
|
默认参数
1 2 3 4 5 6 7 8 9
| def stock_information(code, name='股票'): print('code:', code) print('name:', name) stock_information('000001.SZ')
code: 000001.SZ name: 股票
|
可变参数
可变参数可以是0个到任意个,调用函数时,会自动将可变参数组装成元组
。可变参数的形式为 *args
。
1 2 3 4 5 6 7 8 9 10 11
| def stock_information(code, name='股票', *args): print('code:', code) print('name:', name) print('others:', args) stock_information('000001.SZ', '平安银行', '1987-12-22', '银行')
code: 000001.SZ name: 平安银行 others: ('1987-12-22', '银行')
|
这里需要注意的是,如果是赋值语句:
1 2 3 4
| code, *list = '000001.SZ', '平安银行', '1987-12-22', '银行' print(type(list))
<class 'list'>
|
这时,list就是一个list
类型的变量了。
关键字参数
和上面不同的是,调用函数时,会自动将关键字参数组装成字典。可变参数的形式为 **kws
。
1 2 3 4 5 6 7 8 9 10 11
| def stock_information(code, name ='股票', **kws): print('code:', code) print('name:', name) print('others:', kws) stock_information('000001.SZ','平安银行', date='1987-12-22', industry='银行' )
code: 000001.SZ name: 平安银行 others: {'date': '1987-12-22', 'industry': '银行'}
|
命名关键字参数
用户想要输入的关键字参数,在关键字参数前加分隔符 *
,即*, nkw
,命名关键字不能缺少参数名。Python2貌似是不支持的。
1 2 3 4 5 6 7 8 9 10
| def stock_information(code, name='股票', *, industry): print('code:', code) print('name:', name) print('industry:', industry) stock_information('000001.SZ', '平安银行', industry='银行' )
code: 000001.SZ name: 平安银行 industry: 银行
|
参数组合
5种参数中的4种可以组合在一起使用,但组合有顺序。
位置参数、默认参数、可变参数、关键字参数
位置参数、默认参数、命名关键字参数、关键字参数