码迷,mamicode.com
首页 > 编程语言 > 详细

python中的一些坑(待补充)

时间:2018-10-12 21:15:53      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:use   table   输出   code   pytho   bsp   对象   调用   函数对象   

函数默认参数使用可变对象

def use_mutable_default_param(idx=0, ids=[]):
    ids.append(idx)
    print(idx)
    print(ids)
use_mutable_default_param(idx=1)
use_mutable_default_param(idx=2)

输出

1
[1]
2
[1, 2]

函数本身也是一个对象,默认参数绑定于这个函数对象上

append这类方法会直接修改对象,所以下次调用此函数时,其绑定的默认参数已经不再是空list了

def donot_use_mutable_default_param(idx=0, ids=None):
    if ids is None:
        ids = []
    ids.append(idx)
    print(idx)
    print(ids)

 

python中的一些坑(待补充)

标签:use   table   输出   code   pytho   bsp   对象   调用   函数对象   

原文地址:https://www.cnblogs.com/z-x-y/p/9780166.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!