惯用的python,管理函数中的默认参数

惯用的python,管理函数中的默认参数,第1张

概述我经常遇到大多数人在函数或方法中管理默认参数值,如下所示: def foo(L=None): if L is None: L = [] 但是,我看到其他人做的事情如下: def foo(L=None): L = L or [] 我不知道我是否遗漏了一些东西但是,为什么大多数人使用第一种方法而不是第二种?它们是同样的东西吗?似乎第二个更清晰,更短. 他们不平等. 第一种方法准确检查, 我经常遇到大多数人在函数或方法中管理默认参数值,如下所示:

def foo(L=None):  if L is None:    L = []

但是,我看到其他人做的事情如下:

def foo(L=None):  L = L or []

我不知道我是否遗漏了一些东西但是,为什么大多数人使用第一种方法而不是第二种?它们是同样的东西吗?似乎第二个更清晰,更短.

解决方法 他们不平等.
第一种方法准确检查,给定arg L为None.
第二次检查,L是以python方式为真.在python中,如果您在条件中检查列表,则规则如下:

>列表为空,则为False
>否则为真

那么提到的方法之间的区别是什么?比较这段代码.

第一:

def foo(L=None):    if L is None:        L = []    L.append('x')    return L>>> my_List = []>>> foo(my_List)>>> my_List['x']

第二:

def foo(L=None):    L = L or []    L.append('x')    return L>>> my_List = []>>> foo(my_List)>>> my_List[]

所以首先没有创建新列表,它使用给定的列表.但第二个创造了新的.

总结

以上是内存溢出为你收集整理的惯用的python,管理函数中的默认参数全部内容,希望文章能够帮你解决惯用的python,管理函数中的默认参数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存