python函数中值传递 python按值传递( 二 )


引用计数
PyObject是每个对象必有的内容,其中ob_refcnt就是做为引用计数 。当一个对象有新的引用时,它的ob_refcnt就会增加,当引用它的对象被删除,它的ob_refcnt就会减少.引用计数为0时,该对象生命就结束了 。
优点:
缺点:
python中视图函数传值的数据类型可以传对象吗python的一切数据类型都是对象 。但是python的对象分为不可变对象和可变对象 。python的变量是引用,对python变量的赋值是引用去绑定该对象 。
可变对象的数据发生改变,例如列表和字典 , 引用不会更改绑定对象 , 毕竟本身就是用于增删改查的,频繁地产生新对象必然导致开销巨大,只需要该对象内部变化就行;但对于绑定了不可变对象的引用,对象一旦改变就会使引用绑定新的对象 。
这一点也会反应到函数的参数上 。python的传值方式是“传对象”引用 。python的函数 , 形参实际上是引用,实参便是对象绑定到该引用上 。本质是形参会被作为函数的局部变量,在开辟的函数的栈内存中被声明 。
简要来讲:
如果参数是数,则类似值传递,
如果参数是列表和字典,则类似引用传递 。
每个对象都会有个id, 可以用id()验证以上说法:
这个函数的参数是列表,是可变对象 。
【python函数中值传递 python按值传递】关于python函数中值传递和python按值传递的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读