评估函数python中的默认参数

时间:2017-05-10 17:28:02

标签: python python-3.x function default

我有一个函数有几个默认参数,如此(arg和默认args都是列表):

def my_function(arg1, default1=None, default2=None, default3=None):


    if not default1:
        dosomething1 = dictionary[arg1]

    if not default2:
        dosomething2 = variable.copy()

    if not default3:
        dosomething3 = variable2.copy()


    proj = another_function(arg1, dosomething1, dosomething2, dosomething3)

    return proj

我想添加另一个看起来像这样的if语句:

if not (default1 or default2 or default3):
    dosomething1 = dictionary[arg1]
    dosomething2 = variable.copy()
    dosomething3 = variable2.copy()

但不断收到指向TypeError: unhashable type: 'list'语句下的行的错误if not default1:。我的问题是,如果仅指定my_function(),我该如何使用arg1

1 个答案:

答案 0 :(得分:0)

问题是你正在尝试使用list作为键来查找dict,这是不允许的,因为列表不可用

在您的评论中,您希望将arg1列表作为值添加到dictionary。然后你应该做像

这样的事情
dictionary['some-key'] = arg1