python函数定义默认参数必须指向不可变对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python函数定义默认参数必须指向不可变对象相关的知识,希望对你有一定的参考价值。
为何说python函数定义默认参数必须指向不可变对象?
以下是个人的理解,如有不对的地方,欢迎讨论
原因分析:函数在定义时就分配了函数和默认参数L所指向对象的内存空间。
1. 如果L指向的是可变对象,函数中更新这个可变对象,那么在多次调用函数,更新的都是函数定义时创建的可变对象,
这个可变对象不会随着函数调用结束而销毁,因为函数定义还存在。
2. 如果L指向的是不可变对象,函数中同样更新了L,此时L指向了新创建对象的内存空间,而函数定义时的不可变对象
并没有变。函数调用结束时,新创建对象的内存空间会销毁。因为它是在函数调用时才创建的。
以上是关于python函数定义默认参数必须指向不可变对象的主要内容,如果未能解决你的问题,请参考以下文章
参数定义的顺序必须是:必选参数默认参数可变参数命名关键字参数和关键字参数。