我们用函数
封装了一个功能
,但是希望这个功能可以在不同要求的作用下面得到不同的结果,就需要用到参数
。
def f(color):
if color == 'green':
print('They’re green.')
elif color == 'yellow':
print('It\'s yellow')
else:
print('other')
>>> f('green')
'They’re green.'
>>> f('yellow')
"It's yellow."
>>> f('red')
'other'
参数的初始值
。
def f(color = 'green'): # 默认不传参的情况下 color=green
if color == 'green':
print('They’re green.')
elif color == 'yellow':
print('It\'s yellow.')
else:
print('other')
>>> f()
'They’re green.'
>>> f('yellow')
"It's yellow."
>>> f('red')
'other'
参数的位置默认是按顺序
传递,也可以指定位置
。
def f(name, age):
print(name)
print(age)
# 顺序传递
>>> f('Joe', 16)
'Job'
16
# 指定位置
>>> f(age=16, name='Job')
'Job'
16
Python参数支持的一个高级特性
。
# * 元组打包
def f(name, age, *other):
print(name)
print(age)
print(other)
>>> f('Joe', '16', [], {}, 'x', 'xx', 'xxx')
'Joe'
16
([], {}, 'x', 'xx', 'xxx') # *other 被打包成了一个元组
# ** 字典打包
def f(**args):
print(args)
>>> f(a=1, b=2)
{'a': 1, 'b': 2} # **args 被打包成了一个字典
同上
def f(name, age):
print(name)
print(age)
# * 打包成元组 | 性质=顺序传参
>>> f(*('Joe', 16))
'Job'
16
# ** 打包成字典 | 性质=指定传参
f(**{'age': 16, 'name':'Job'})
'Job'
16