Python 函数参数

参数

我们用函数封装了一个功能,但是希望这个功能可以在不同要求的作用下面得到不同的结果,就需要用到参数

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
Python 教程 Python 入门 Python 时间 Python JSON