Dictionary Python-区分字典的两种用途

Dictionary Python-区分字典的两种用途,dictionary,python-2.7,Dictionary,Python 2.7,我最近想在python中练习使用字典,无意中发现了这两条信息。这两段代码都使用空字典,(对我来说)是一样的。我想我是在问这两者之间的区别,以及哪一个更有利和/或更方便 #1 def foo(dct = {}): #2 def foo(dct = None): if dct == None: dct = {} 不要使用可变对象作为函数的默认参数,除非您真的知道自己在做什么;每次调用函数时,它都将使用相同的字典,因为它是在定义函数时创建

我最近想在python中练习使用字典,无意中发现了这两条信息。这两段代码都使用空字典,(对我来说)是一样的。我想我是在问这两者之间的区别,以及哪一个更有利和/或更方便

#1

    def foo(dct = {}):

#2

    def foo(dct = None):
        if dct == None:
            dct = {}

不要使用可变对象作为函数的默认参数,除非您真的知道自己在做什么;每次调用函数时,它都将使用相同的字典,因为它是在定义函数时创建的,而不是在调用函数时创建的。

可能的重复