请告诉我,如果有帖子已经在讨论这个问题,我还没有找到关于这个特定主题的具体答案。
您不应该使用列表作为函数参数的默认值,因为它是可变的。在这种情况下,以下哪种代码是最佳实践?
def my_func(arg1 = ("hello", "world")):
pass
或
def my_func(arg1 = None):
if arg1 is None:
arg1 = ["hello", "world"]
我说的是一种情况,在这种情况下,元组和列表可以在函数中以相同的方式使用。
谢谢!
取决于是否要更改:
对于元组:
def my_func(arg1 = ("hello", "world")):
arg1[0] = "other val"
您将得到->TypeError: 'tuple' object does not support item assignment
如前所述,列表是可变的:
def my_func(arg1 = None):
if arg1 is None:
arg1 = ["hello", "world"]
arg1[0] = "other val"
arg1
是['other val', 'world']