【问题标题】:Clearing an optional argument at each call [duplicate]在每次调用时清除一个可选参数 [重复]
【发布时间】:2015-01-31 12:51:25
【问题描述】:

您将如何定义一个函数,该函数接受一个可选参数并附加到它而无需提供参数?代码类似于

def myfunc(value, values=[]):
    values.append(value)
    return values

print(myfunc("item"))
print(myfunc("item"))

预期的输出是

['item']
['item']

而不是

['item']
['item', 'item']

【问题讨论】:

    标签: python list function python-3.x recursion


    【解决方案1】:

    避免使用可变的(字典、列表等)作为默认参数。

    相反,您可以执行以下操作。

    def myfunc(value, values=None):
        if values is None:
            values = []
        values.append(value)
        return values
    
    print(myfunc("item"))
    print(myfunc("item"))
    

    【讨论】:

      猜你喜欢
      • 2017-07-04
      • 2011-11-03
      • 2015-11-25
      • 1970-01-01
      • 2018-03-06
      • 1970-01-01
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      相关资源
      最近更新 更多