栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python实例变量作为默认参数[重复]

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python实例变量作为默认参数[重复]

对这个问题的简短回答是“否”,您不能消除if语句,因为Python仅检查一次签名,因此默认值在所有调用中共享。考虑例如:

def addit(x, L=[]):    L.append(x)    return L

与:

def addit(x,L=None):     if L is None:         L=[]     L.append(x)     return L

这两个功能虽然看起来相同,但实际上具有完全不同的行为。在第一个实例中,L的默认值在调用之间共享,因此在第一种情况下,

addit(1)
其后
addit(2)
将返回两个对象,它们实际上指向同一个基础对象并且值为
[1,2]
,而在第二种情况下,它将返回将返回两个单独的对象,
[1]
[2]

因此,我为您提供的唯一建议是使用默认值,

None
因为这是未指定参数的标准约定,而是继续使用if检查,因为使用某些现有对象作为默认值将具有行为略有不同(通常是错误的)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/662690.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号