当前位置 博文首页 > fearlazy:python3基础之函数参数的传递方式

    fearlazy:python3基础之函数参数的传递方式

    作者:[db:作者] 时间:2021-06-17 21:11

    文章已更新,最新地址:https://www.fearlazy.com/index.php/post/142.html

    ?

    c++函数传参有三种方式:分别是按值、按引用和按指针传递。简单的说按值传递的方式不会改变传递的参数本身,按引用传递的方式会改变参数本身(当然可以用const限制),按指针传递方式会改变指针指向的对象。那么python有没有这样的特性呢?以下做一些测试:

    ????1.传递数字类型的变量(python里可能应该叫对象):

    ????image.png

    ????从测试代码中可以看到a并没有发生改变,函数中的parm(形参)值发生了改变。也就是说调用函数时参数a只是把值赋给了parm。

    ????

    ????2.传递列表类型的变量:

    ????image.png

    ????从测试代码中可以看出经过函数调用后,a的值发生了改变。改变后的a和函数里的parm是一样的。可以理解为变量a把自己赋给了parm。

    ?

    ????3.传递字符串类型的变量:

    ????image.png

    ????和数字类型一样,传递字符串类型的参数也是按值传递。

    ?

    ????4.传递字典类型的变量:

    image.png

    ????和列表类型一样,传递字典类型的参数是按引用方式传递。

    ?

    ????5.传递元组类型的变量:

    ????image.png

    ? ? 在函数中试图改变传进来的元组的值,程序崩溃了。? 忘了元组是不能改变它的值的....

    ?

    ????总结:python中变量可以分为可变类型(如列表、字典)和不可变类型(如数字和字符串)。可变类型的变量可以看成是按引用传递,不可变类型的变量可以看成是按值传递。

    下一篇:没有了