7.3.1参数传递参数传递的方式Python中主程序调用函数时,实参的值传递给形参,实际上是将实参所指向的对象的地址传递给了形参。当传递的对象是不可变对象,如数值、字符、元组等,在函数体中形参值的变化不会影响到实参。当传递的对象是可变对象,如列表、字典等,在函数中可变对象值的变化会影响到实参
参数传递的方式 Python中主程序调用函数时,实参的值传递给形参,实际上是 将实参所指向的对象的地址传递给了形参。 当传递的对象是不可变对象,如数值、字符、元组等,在函数 体中形参值的变化不会影响到实参。 当传递的对象是可变对象,如列表、字典等,在函数中可变对 象值的变化会影响到实参。 7.3.1参数传递
(例7.4】传递不可变对象,形参的变化不会影响到实参。#example7.4程序运行结果如下:def add(x):print("形参x的初始值是:",x)X+=1实参y的初始值是:4print("形参x的最终值是:",x)4形参x的初始值是:y=4LO形参x的最终值是:print("实参y的初始值是:",y)4实参y的最终值是:add(y)print("实参y的最终值是:",y)形参的变化不会影响到实参
程序运行结果如下: 【例7.4】传递不可变对象,形参的变化不 会影响到实参。 形参的变化不会影响到实参
(例7.5】可变对象列表作为形参,形参的变化会影响到实参。#example7.5def change (n) :程序运行结果如下:n.append(3)print(函数中n值:,n)m=[1]调用函数前m的值:[1]print(调用函数前m的值:,m)函数中n值:[1,3]change(m)print(调用函数后m的值:,m)调用函数后m的值:[1,3]形参的变化会影响到实参
形参的变化会影响到实参 【例7.5】可变对象列表作为形参,形参的 变化会影响到实参。 程序运行结果如下:
(例7.6】可变对象字典作为形参,形参的变化会影响到实参。#example7.6defchange(x):x[院系门法学院x[专业j=法学a=(学号:20024011,姓名:杨晓靠”,院系”:管理学院”,专业:行政管理”)print(a)change(a)print(a)程序运行结果如下:【专业”:”行政管理”“学号”:20024011”,“院系”:管理学院”,“姓名”:“杨晓霏『专业”:,法学”,文学号”:20024011”,院系”:”法学院”,“姓名”:“杨晓霏”】>>>形参的变化会影响到实参
【例7.6】可变对象字典作为形参,形参的 变化会影响到实参。 形参的变化会影响到实参 程序运行结果如下:
7.3.2位置参数和关键字参数1.位置参数默认情况下,Python要求调用函数时参数的个数、位置和顺序要与函数定义中的一致,这种参数也被称为位置参数
1.位置参数 默认情况下,Python要求调用函数时参数的个数、位置和顺序 要与函数定义中的一致,这种参数也被称为位置参数。 7.3.2位置参数和关键字参数