
一次让我怀疑人生的排错经历上个月我接了个订单统计系统的活儿。需求很简单:给每个商品打标签,如果调用时没给标签列表,就自动新建一个空列表来装。我三下五除二写完了代码:defadd_tag(item,tags=[]): tags.append(item) returntags简单测了一下,完全OK。于是部署上线,开始接收真实数据。第二天,运营同事跑过来跟我说:"你这系统是不是有问题?我明明只给'电子产品'加了三个标签,为什么'包邮'商品里也出现了'电子产品'的标签?"我一查数据库,惊了——很多商品的标签都串在一起了。查了半天代码,发现问题就出在那行看似人畜无害的def add_tag(item, tags=[]):上。一个空列表,让我加了两天班。怎么回事?Python的默认参数藏着一个坑先来复现一下这个"灵异"现象:defadd_tag(item,tags=[]): t