a = 1
print(id(a))
def fun(a):
a = 2
print(a,id(a))
fun(a)
print(a,id(a)) # 1
#为什么这里的a的值没有改变
#因为在函数里变量赋值(内存指向)作用于该函数 类似于局部变量
#假如在函数里加个global a
相关文章
- python与java的内存机制不一样;java的方法会进入方法区直到对象消失 方法才会消失;python的方法是对象每次调用都会创建新的对象 内存地址都不i一样
- Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用
- 【JavaScript】11_枚举属性+可变类型+修改对象和属性与方法
- Python__21--类与对象的基本信息
- 流畅的python 对象引用 可变性和垃圾回收
- 为什么Python中的可变值枚举相同的对象?
- python可变对象和不可变对象的解释
- 子类可变更从父类继承的成员的作用域违背了面向对象的封装性
- Java中String对象的不可变性
- python中的函数对象与闭包函数