6.2 函数的参数
函数的作用就是完成一定的功能,很多的功能就是要对数据进行加工,加工的数据从哪里来呢?答案就是在调用函数的时候,将数据传递给函数,这就是函数的参数。
例如:6.3-函数的参数.py
# 定义带有参数的函数
def add_num(a, b):
c = a + b
print(c)
调用带有参数的函数时,要给出相应的两个数据作为参数:
add_num(10, 20)
执行结果为:
30
6.2.1 形参和实参
这是一对经常提到的概念。形参是指在函数定义的时候,例如上面的例子,这时候的参数a和b,只是为了表明这个函数会对这两个参数进行操作,而不是实际要加工的数据,只具有形式意义,所以称为形式参数,简称形参。
而在调用函数的时候,例如上面的例子中的10,20,它们是主调函数中实际要处理的数据,是具有实际意义的,所以称为实际参数,简称实参。
6.2.2 参数传递
在调用带有参数的函数时,Python将实参的引用传递给形参,于是形参里面就有了实参一样的值。
如果传递的参数类型是不可变类型,那么在被调函数中对形参的修改,不会改变主调函数中实参的值。
而传递的参数类型是可变类型的话,那么在被调函数中对形参的修改,将会改变主调函数中实参的值。
根据实际需要是否需要改变主调函数中实参的值,灵活选择使用参数的类型。
例如:6.4-参数传递.py
# 参数传递:将实参的引用传递给形参
def swap1(a, b):
a, b = b, a
def swap2(numlist):
numlist.reverse()
num1 = 10
num2 = 20
numlist = [10, 20]
print('num1={}, num2={}'.format(num1, num2))
swap1(num1, num2)
print('after swap1:')
print('num1={}, num2={}'.format(num1, num2))
print('')
print('numlist:', numlist)
swap2(numlist)
print('after swap2:')
print('numlist:', numlist)
执行结果为:
num1=10, num2=20
after swap1:
num1=10, num2=20
numlist: [10, 20]
after swap2:
numlist: [20, 10]