美文网首页
python函数传参

python函数传参

作者: RayRaymond | 来源:发表于2020-05-23 11:09 被阅读0次

***

  • test(*args)

    * 的作用其实就是把序列args中的每个元素,当作位置参数传进去。

    *所对应的形参会被解释为一个元组

def show_1(*args):
    print(args)

def show(*args):
    print(args,type(args))
    show_1(args)
    show_1(*args)

show(1,2)
# (1, 2) <class 'tuple'>
# ((1, 2),)
# (1, 2)
  • test(**kwargs)

    ** 的作用则是把字典 kwargs 变成关键字参数传递。

    **所对应的形参(如上面的b)会被解释为一个字典

  • 非关键字传递的变量必须写在关键字传递变量的前面,所以混合使用**** 形参在 ** 形参的前面 。

  • 解包裹

    把元组或字典作为参数传入时,如果要适配包裹形式的形参定义,按照元组用*,字典用**的方式“解包裹”传递即可。

传参机制

  • 所有的参数实际上都是通过指针进行传递的,作为参数被传递的对象从来不自动拷贝

    • 不可变参数“通过值”进行传递

      整数和字符串这样的对象是不可变对象,它们通过对象引用而不是拷贝进行传递的,但是因为无论如何都不可能在原处改变不可变对象,实际的效果就很像创建了一份拷贝

    • 可变对象是通过“指针”进行传递的

      列表和字典这样的对象也是通过对象引用进行传递的,这一点与C语言使用指针传递数组很相似,可变对象能够在函数内部进行原处的改变,这一点和C数组很像

  • 不管什么类型的参数,在 Python 函数中对参数直接使用“=”符号赋值是没用的,直接使用“=”符号赋值并不能改变参数。

  • 如果需要让函数修改某些数据,则可以通过把这些数据包装成列表、字典等可变对象,然后把列表、字典等可变对象作为参数传入函数,在函数中通过列表、字典的方法修改它们,这样才能改变这些数据。

  • 参数顺序

    位置参数 ---> 默认参数 ---> 变长参数 ---> 关键字参数 ---> 命名关键字参数

相关文章

  • python函数

    python函数 什么是函数 函数语法 调用函数 函数参数形参与实参传参指定参数传参参数默认值可变参数参数解包参数...

  • Python的函数返回值返回的是值还是引用?

    关于Python函数传参是传值还是传引用?这一问题网上都有很多的讨论,这篇博客解释比较清楚,结论是:Python参...

  • python函数传参

    * 和** test(*args)* 的作用其实就是把序列args中的每个元素,当作位置参数传进去。*所对应的形参...

  • Python函数传参

    函数代码块以def关键字开头,后接函数标识符名称和圆括号() 所有传入的参数和自变量都必须放在圆括号内,可以在圆括...

  • Python共享传参

    函数的参数作为引用 Python 唯一支持的参数传递是 共享传参 ,也就是常说的引用传参。函数内部的形参是实参的别...

  • 研究Python中函数的传参方式

    注:原创研究目的:研究Python中函数的传参方式:传值、传地址研究对象:Python的list和Numpy的ar...

  • 19-3-18 python函数传参方式

    python函数传参跟js很像: 直接传参方式: 形参实参按顺序一一对应,跟js一样 指定传参 参数顺序不用一一对...

  • Python脚本传参(argparse模块)2022-08-23

    Python传参 简便版 进阶版 Python使用argparse模块传参 Python系统自带的传参用到sys模...

  • 函数

    简单函数格式 定义 调用函数 传参函数格式: 传参数 定义 注意 重点 实例(简单) 实例(传参) 实例函数(调用...

  • Python参数传递小结

    2016.06.14更新:又踩坑了,百度后得到解决,参考链接:python:函数传参是否会改变函数外参数的值 入参...

网友评论

      本文标题:python函数传参

      本文链接:https://www.haomeiwen.com/subject/rdekahtx.html