资讯专栏INFORMATION COLUMN

2分钟了解Python的5种传参姿势

missonce / 3036人阅读

摘要:一个实参对应一个相应位置的形参。默认值可以给形参指定默认值,当没有提供实参的时候,就会使用默认值。传递任意数量的实参使用形参可以使函数能够传递任意数量的实参。传递的参数会被封装成键值对,即字典。

关于传参

稍微总结一下 Python 函数传递参数的方式。

位置实参

实参和形参的位置是关联对应的。一个实参对应一个相应位置的形参。

def func(a, b):
    print(a, b)

>>> func(1, 2)
1 2
>>> func(2, 1)
2 1
关键字实参

实参以 key=value 的形式传递,因为已经指明了将 value 传给哪个参数,所以位置顺序就无关紧要了。

def func(a, b):
    print(a, b)

>>> func(a=1, b=2)
1 2
>>> func(b=2, a=1)
1 2
默认值

可以给形参指定默认值,当没有提供实参的时候,就会使用默认值。

利用这个特性可以实现可选参数

def func(a, b=2):
    print(a, b)

>>> func(1)
1 2
>>> func(1, 3)
1 3
传递任意数量的实参

使用形参 *topping 可以使函数能够传递任意数量的实参。

传递的参数会被封装到一个元组中

def func(*args):
    print(args)
    
>>> func("a", "b", "c")
("a", "b", "c")
传递任意数量的关键字实参

使用形参 **kwargs 可以使函数能够传递数量的关键字实参

传递的参数会被封装成键值对,即字典

kwargs => keyword args

def func(**kwargs):
    print(kwargs)
    
>>> func(a=1, b=2, c=3)
{"a": 1, "b": 2, "c": 3}
参考

《Python编程从入门到实践》

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42958.html

相关文章

  • SSM学习系列(四) Spring MVC 几传参方式

    摘要:初步使用几种传参方式本次沿用上次的工程,在中添加几个方法创建模型修改直接把表单参数写入的相应方法中通过来接收通过来接收通过接收用注解绑定请求参数测试接口测试使用的是火狐的插件,使用类似的工具也可以,或者写一个表单,这里不在多解释可以看到请求 Spring MVC初步使用 Spring MVC 几种传参方式 本次沿用上次的工程,在controller中添加几个方法 创建User模型 pu...

    cnTomato 评论0 收藏0
  • JS中值是按值传递,还是按引用传递呢?

    摘要:按引用传递时,函数的形参接收实参的隐式引用,而不再是副本。探究值的传递方式的基本类型,是按值传递的。但这样是否说明的对象是按引用传递的呢我们再看下面的例子仍然是并未被修改为如果是按引用传递,修改形参的值,应该影响到实参才对。 最近遇到个有趣的问题:JS中的值是按值传递,还是按引用传递呢? 在分析这个问题之前,我们需了解什么是按值传递(call by value),什么是按引用传递(ca...

    Jochen 评论0 收藏0
  • React Native 传参五种方式

    摘要:在中由于业务的需要我们往往要在诸多的页面间,组件之间做一些参数的传递与管理在这里我总结了几大经过验证,稳定好用的方式给大家导航传值推荐指数适用范围相邻页面间传值兼容性原理为页面的上挂载了对象可用来做路由跳转,在做页面跳转时可以携带参数回调方 在React Native 中由于业务的需要, 我们往往要在诸多的页面间,组件之间做一些参数的传递与管理, 在这里我总结了几大经过验证,稳定好用的...

    cnTomato 评论0 收藏0
  • Sentry - 处理异常日志正确姿势

    摘要:对我们来说最大的便利就是利用日志进行错误发现和排查的效率变高了。官方也提倡正确设置接收的日志的同时,用户也能继续旧的日志备份。 在各种系统和应用里,无论你的代码再完美也还是会抛异常,出错误。今天的主角是当今比较流行的异常记录框架 - Sentry,来了解一下。 关于日志管理 应用越做越复杂,输出日志五花八门,有print的,有写stdout的,有写stderr的, 有写logging的...

    lifefriend_007 评论0 收藏0
  • JavaScript Date类使用中遇到"bug"

    摘要:类使用中遇到的在实例化时使用了两种传参方式是字符串一个参数是多个类型数据多参数可以看出当这种情况由于月份是由表示的所以这里的其实指的是一月由于参数是字符串字符串中的月份是表示所以这里的就是一月,所以那为啥又能等于呢因为这里的其实是月实际 JavaScript Date类使用中遇到的bug var a1 = +new Date(2018,1,3); var a11 = +new Date...

    fai1017 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<