Python传递变量......?

时间:2018-03-31 20:22:49

标签: python

我从这里获得了这段代码:http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#other-languages-have-variables

它的主要思想是在Python中,变量是对象的名称标签。但是后来作者给出了以下代码,我不明白他们为什么表现不同。

def bad_append(new_item, a_list = []):
    a_list.append(new_item)
    return a_list

bad_append(1)   # returns [1]
bad_append(2)   # returns [1, 2]

另一个功能:

def good_append(new_item, a_list = None):
    if a_list == None:
        a_list = []
    a_list.append(new_item)
    return a_list

good_append(1)    # returns [1]
good_append(2)    # returns [2]

这个问题可能是相关的,但许多概念混淆了(例如可变,参考,变量),我仍然感到困惑...... How do I pass a variable by reference?

因此,我是否可以要求对上述两个函数为何表现不同有某种解释?

0 个答案:

没有答案