import datetime
a = 1
def aa(da):
print(id(da))
da= datetime.datetime.now()
print(id(da))
aa(a)
2688408223984
2688476823696
https://blog.csdn.net/Ljj9889/article/details/125965661
PS:了解下Markdown的代码块吧
原代码应该如下吧,da
的指向变了,所以id()
打印的地址不一样
import datetime
a = 1
def aa(da):
print(id(da))
da = datetime.datetime.now()
print(id(da))
if __name__ == '__main__':
aa(a)
如果你想不变,要改变a
的数据类型,如下
import datetime
a = [1, ]
def aa(da):
print(id(da))
da[0] = datetime.datetime.now()
print(id(da))
if __name__ == '__main__':
aa(a)
谢谢
python中id()是取对象在内存地址。在调用函数aa的时候是将该值值复制了一份这样就有了新地址,这样在函数内操作这个对象,就不会影响到外面原始的da。等于函数内的da跟外面的da在调用后完全没关系了