python--参数传递

    xiaoxiao2021-03-26  17

    我们已经了解对象的可变性,例如: def f(a) a.append("hello") a = [] print a f(a) print a //此时会发现,列表a中将会对一项“hello”元素,这就是由于列表的可变性导致的 但是我们有时候并不想因为调用了f()方法而将a[]改变掉,此时应该怎么办呢? 1,对list()进行切片 def f(x)     x.append("hello") id(x) a  = [] print a print id(a) f(a[:]) //对a进行切片 print a //此时会发现,a与x的id不同,也就是两者已经不属于同一个对象了 2,传递不同的对象 3,深拷贝 from copy import deepcopy from copy import deepcopy def f(x)     x.append("hello")     id(x) a  = [] print a print id(a) f(deepcopy(a))  //对a进行深拷贝 print a //此时会发现,a与x的id不同,也就是两者已经不属于同一个对象了 当对象为不可变对象时,其传递时就相当于局部变量,毕竟人家不可变你怎么可以改动人家!!
    转载请注明原文地址: https://ju.6miu.com/read-450124.html

    最新回复(0)