python中的可变量:列表
gg = []
hh = '0'
kk = 0
def change_g(k):
k.append(1)
def change_l(h):
h = '1'
def change_p(c):
c += 1
change_g(gg)
change_l(hh)
change_p(kk)
print(gg)
print(hh)
print(kk)
====================================================
稍微思考下上面的代码返回值会是什么?
得到返回值的时候我有点纳闷,为啥会返回[1],不是应该[]嘛
于是翻看了python资料,看了半天终于明白了
列表是一个可变的,当gg传入change_g中,传入的是列表对象的地址,函数的操作是直接对原对象操作的,而gg是指向这个列表对象地址的一个变量,所以最终打印时[1]
不仅仅列表,还有字典,集合也是这样的
另外,比如字符串,数字,元组等等不可变的是不会出现这样情况的,每次调用都是创建了一个副本对象,所以做的操作对原对象是没有影响的,比如上面的hh和kk,除非把副本对象赋值给原变量
比如 hh = change_l(hh)
那么hh打印就应该是'1'了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术