python变量及其赋值
  • 变量的赋值, 只是表示让变量指向了某个对象, 并不表示拷贝对象给变量,而一个对象, 可以被多个变量所指向
  • 可变对象(列表,字典,集合等)的改变,会影响所有指向该对象的变量
  • 对雨不可改变对象(字符串,整型,元组等), 所有指向该对象的变量的值总是一样的,也不会改变,但是通过某些操作(+ = 等)更新不可变对象的值时, 会返回一个新的对象
  • 变量可以被删除,但是对象无法被删除
python函数的参数传递
  • Python的参数传递是赋值传递,或者叫作对象的引用传递,Python里所有的数据类型都是对象,所以参数传递时, 只是让新变量与原有变量指向相同的对象,不存在值传递或是引用传递
  • 赋值或者对象的引用传递, 不是指向一个具体的内存地址,二十指向一个具体的对象
    • 如果对象时可变的, 当其改变时, 所有指向这个对象的变量都会改变
    • 如果对象不可变,简单的赋值值能改变其中一个变量的值, 其余变量不受影响
  • 如果想通过一个函数来改变某个变量的值, 通常有两种方法:
    • 直接将可变数据类型(如字典, 列表, 集合)当作参数传入, 直接在其上进行修改
    • 或者创建一个变量来保存修改后的值, 然后将其返回给原来的变量, 实际使用中建议使用这种方法, 不易出错