Python全系列 教程
3567个小节阅读:5931.1k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
函数的参数传递本质上就是:从实参到形参的赋值操作。Python中“一切皆对象”,所有的赋值操作都是“引用的赋值”。所以,Python中参数的传递都是“引用传递”,不是“值传递”。
具体操作时分为两类:
- 可变对象有:
字典、列表、集合、自定义的对象等
- 不可变对象有:
数字、字符串、元组、function等
传递参数是可变对象(例如:列表、字典、自定义的其他可变对象等),实际传递的还是对象的引用。在函数体中不创建新的对象拷贝,而是可以直接修改所传递的对象。
【操作】参数传递:传递可变对象的引用
xxxxxxxxxx
b = [10,20]
def f2(m):
print("m:",id(m)) #b和m是同一个对象
m.append(30) #由于m是可变对象,不创建对象拷贝,直接修改这个对象
f2(b)
print("b:",id(b))
print(b)
执行结果:
m: 45765960
b: 45765960
[10, 20, 30]
实时效果反馈
1. 列表是可变对象,关于参数传递可变对象,说法错误的是:
xxxxxxxxxx
b = [10,20]
def f2(m):
print("m:",id(m))
m.append(30)
f2(b)
A b和m是同一个对象
B b和m是不同的对象
C 对“可变对象”进行“写操作”,直接作用于原对象本身
D f2(b)
把b
传递给m
的过程中,没有创建对象的拷贝
答案
1=>B