重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

怎样定义python里的默认参数-创新互联

这篇文章主要介绍了怎样定义python里的默认参数,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

创新互联公司主要从事成都网站制作、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务霍尔果斯,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

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里的默认参数-创新互联
文章路径:http://cqcxhl.cn/article/dhhcio.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP