如何解决您不能使用列表作为默认参数,但您可以使用元组吗?
请让我知道是否有帖子已经解决了这个问题,我无法找到有关此特定主题的具体答案。
您不应该使用列表作为函数参数的默认值,因为它是可变的。在这种情况下,以下哪个代码是最佳实践?
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']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。