最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 如何定义python里的默认参数?

    正文概述    2020-07-03   360

    python中的函数大家也学了不少了,那么默认参数是什么呢?有些小伙伴就不知道了。不着急,今天小编就为大家讲讲函数中的默认参数。

    Python 处理默认参数值的方式是少数的几个能绊倒大部分初学者的问题之一(虽然一般只会绊倒一次)。

    Python 做出这种让人费解的行为,往往是因为你把一个“可变”对象当做了函数的默认参数。即,一个可以原地进行改变的对象,比如说列表或者字典。 

    举例:

    >>> def function(data=[]):
    ...     data.append(1)
    ...     return data
    ...
    >>> function()
    [1]
    >>> function()
    [1, 1]
    >>> function()
    [1, 1, 1]


    如代码所示,返回值列表变得的越来越长,而不是想象中的每次都是 [1] 。试着查看一下每次返回的列表的 ID,发现竟然没有变过。


    >>> id(function())
    12516768
    >>> id(function())
    12516768
    >>> id(function())
    12516768


    原因也很简单,function() 函数在不同函数调用中一直在使用同一个列表对象。我们的修改(data.append(1))变成了粘滞操作。 

    为什么会这样?那是因为默认参数语句,总是在 def 关键字定义函数的时候被求值,且仅执行这一次。

    默认形参值会在执行函数定义时按从左至右的顺序被求值。这意味着当函数被定义时将对表达式求值一次,相同的“预计算”值将在每次调用时被使用。

    需要注意的是,以关键字 def 开头的函数签名在 Python 中是个可执行语句,默认参数就是在def 表达式中被求值的。如果你执行 def 表达式多次,Python 就会每次为你创建一个新的函数对象(默认参数自然也会重新计算)。

    以上就是python中默认参数的详解。更多Python学习推荐:起源地模板网教学中心


    起源地下载网 » 如何定义python里的默认参数?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元