美文网首页
可变对象 VS 不可变对象

可变对象 VS 不可变对象

作者: 好小葱1 | 来源:发表于2018-08-06 15:23 被阅读49次
    • 可变对象创建后可改变但地址不会改变,即变量指向的还是原来的变量.
    • 不可变对象创建之后便不能改变,如果改变则会指向一个新的对象。
    • None在python里面是个单例对象
    • dictlist是可变对象,strinttuplefloat是不可变对象。 不可变对象
      列表的操作
      变量c是对b的切片操作的返回值,切片操作相当于浅拷贝,会生成一个新的对象,因此c指向的对象不再是b所指向的对象,对c的操作不会改变b的值。
      函数的默认参数
      为什么调用group2的add_member方法会影响group1的members?

    __init__函数的第二个参数是默认参数,默认参数的默认值在函数创建的时候就生成了,每次调用都是用了这个对象的缓存

    解决方法如下,默认参数传入None,创建对象的时候动态生成列表:

    image.png

    相关文章

      网友评论

          本文标题:可变对象 VS 不可变对象

          本文链接:https://www.haomeiwen.com/subject/ygqgvftx.html