为什么函数返回结果与默认值不匹配?

时间:2019-08-10 00:59:15

标签: python python-3.x default-parameters

在两种情况下,代码均不能正常工作。我不明白为什么

第一种情况:

def function (foo, a = [i for i in range(8)]):
    print(len(a))
    if foo:
        bar = [0,1,2,3]
    else:
        bar = [4,5,6,7]

    for itt_0 in bar:
        if itt_0 in a:
            a.remove(itt_0)
    print(a)

function(True)
function(False)

控制台返回

  • 8
  • [4,5,6,7]
  • 4
  • []

第二种情况:

def function (foo):
    a = [i for i in range(8)]
    print(len(a))
    if foo:
        bar = [0,1,2,3]
    else:
        bar = [4,5,6,7]

    for itt_0 in bar:
        if itt_0 in a:
            a.remove(itt_0)
    print(a)

function(True)
function(False)

控制台返回

  • 8
  • [4,5,6,7]
  • 8
  • [0,1,2,3]

它以某种方式像保存它的值一样工作吗?

0 个答案:

没有答案