Python全系列 教程
3567个小节阅读:5931.1k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
传递参数是不可变对象(例如:int
、float
、字符串、元组、布尔值),实际传递的还是对象的引用。在”赋值操作”时,由于不可变对象无法修改,系统会新创建一个对象。
【操作】参数传递:传递不可变对象的引用
xxxxxxxxxx
a = 100
def f1(n):
print("n:",id(n)) #传递进来的是a对象的地址
n = n+200 #由于a是不可变对象,因此创建新的对象n
print("n:",id(n)) #n已经变成了新的对象
print(n)
f1(a)
print("a:",id(a))
执行结果:
n: 1663816464
n: 46608592
300
a: 1663816464
显然,通过id
值我们可以看到n
和a
一开始是同一个对象。给n赋值后,n是新的对象。
实时效果反馈
1. 数字是不可变对象,关于参数传递不可变对象并且要修改原对象,说法错误的是:
xxxxxxxxxx
a = 100
def f1(n):
n = n+200
f1(a)
A 代码执行完后,a
和n
是同一个对象
B 代码执行完后,a
和n
是不同的对象
C 对“不可变对象”进行“写操作”,创建新的对象
D 执行n=n+200
时,创建了新的对象
答案
1=>A