惯用的python,管理函数中的默认参数
发布时间:2020-12-20 11:27:11 所属栏目:Python 来源:网络整理
导读:我经常遇到大多数人在函数或方法中管理默认参数值,如下所示: 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 [] 所以首先没有创建新列表,它使用给定的列表.但第二个创造了新的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |