四时宝库

程序员的知识宝库

python函数之一:函数传入可变和不可变对象,要注意

先说对象类型,再说函数传入不同类型需要注意的地方


1、python对象类型

  • 不可变对象:数字、字符串、元组、布尔(编辑属于新建对象)
    相同数据占用一块内存
    如:a=1; b=1; a和b的内存地址一样,就一个对象1,没有创建新对象(没有开辟新内存)
    编辑对象
    如:a=1; a=2; 等于创建新对象(开辟新内存)
  • 可变对象:列表,集合,字典(编辑属于原地操作)
    一个对象占一块内存
    如:a=[1,2]; b=[1,2]; a和b的内存地址不一样,两个新对象(开辟2块新的内存))
    编辑对象
    如:a=[1,2]; a.append(3); a的内存地址不变,还是一个对象(内存扩充)

不可变对象的理解



可变对象的理解



2、函数传入不同类型对象(传入后一般对象都会经过加工)

  • 传入不可变对象:加工后原来的对象不变。
    相同数据占用一块内存
  • 传入可变对象:加工后改变原来的对象。
    未生成新对象,再次使用被影响后的对象,要特别注意已经发送变化

传入不可变类型对象-原对象不变



传入可变类型对象-原对象变化


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接