python默认参数为迭代类型

文章介绍了Python中默认参数为迭代类型时的行为,指出它们类似静态变量,仅在函数定义时初始化。通过代码演示了不同调用情况下默认参数的变化情况。
摘要由CSDN通过智能技术生成

title: python默认参数为迭代类型
top: 43
date: 2022-09-01 11:06:16
tags:

  • python
    categories:
  • python

list, dict可迭代类型作为默认参数时,只会在定义函数的时候执行一次,有点像静态变量,定义一次后面一直使用。在之后使用函数的过程中,如果没有对默认参数进行赋值,那么将会一直使用这个初始的变量。

def ato(num, ml=[], md=()):
    print(id(ml))
    ml.append(num)
    print(ml)
    print('--'*8,id(md))


ato(1)
ato(2, [2,3])  								 #####
ato(3)


def funca():
    ato(11)
    ato(12)
    ato(31)

funca()


"""output
140390234809968
[1]
---------------- 140390252151376
140390234809088								#####
[2, 3, 2]
---------------- 140390252151376
140390234809968
[1, 3]
---------------- 140390252151376
140390234809968
[1, 3, 11]
---------------- 140390252151376
140390234809968
[1, 3, 11, 12]
---------------- 140390252151376
140390234809968
[1, 3, 11, 12, 31]
---------------- 140390252151376

"""

参考链接

[]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值