关于 python 函数的参数

这是一个关于 python 函数中参数的实现

python 参数

python 中的参数传递和 C 等不同,python 传入的参数可以理解是 C++ 中的引用,也可以理解为直接传入实参,函数栈中不会预先分配新的空间,可以观察下面的例子
image-20220525160549585
可以从从输出的 ID 中看出,外部空间传入的参数的 ID 和函数中变量的 ID 是相同的,所以可以理解为 python 的函数直接使用了外部空间的参数,所以也就会导致对函数内部的参数的修改会影响到外面的参数。

但是同时也注意到另外一个现象就是
image-20220525161057635
如果在函数内部的变量会申请一个新的空间,而且奇妙的是如果函数内部命名的变量和传入参数是一样的话会导致传入参数的地址丢失,只能保留下原变量的值.
启示
如果考虑了分配空间的时间的话可以得到如下结果
image-20220525161057635
上面一个输出是用 append 实现的,而下面的是使用 + 实现的,没有分配空间会更快一些


关于 python 函数的参数
http://home.ustc.edu.cn/~ustcxwy0271/2022/05/25/python-fun-1/
作者
Xu Weiye
发布于
2022年5月25日
许可协议