如何设置可选参数?

时间:2018-11-06 21:08:44

标签: python dictionary boolean

请帮助,我的代码中有此功能,将来会成为一个模块。到目前为止,我还没有做过模块,但是我想允许用户将match布尔值更改为False,但是我不想强迫他们填充它,以防他们想要保持True 因此,如果只需要1个输入但第二个(match = False)可选则很高兴。该模块根据邮政编码字典返回邮政编码或城市名称。

def returnCode(city):
    cityOriginal = city
    city = str(city)
    match = True
    if match:
        city = get_close_matches(city, codes.values())[0]
    if hasNumbers(city) == True and hasNumbers(cityOriginal) == False:
        city = sub('[0123456789]', '1', city)
    return cityDict[city]

returnCode('Berlin')
#returnCode('Berlin', match=False) ... how to?

1 个答案:

答案 0 :(得分:4)

您可以在Python中为参数指定默认值,调用该函数时可以使用显式参数覆盖该默认值。

def returnCode(city, match=True):
    cityOriginal = city
    city = str(city)
    if match:
        city = get_close_matches(city, codes.values())[0]
    if hasNumbers(city) == True and hasNumbers(cityOriginal) == False:
        city = sub('[0123456789]', '1', city)
    return cityDict[city]

returnCode('Berlin')
returnCode('Berlin', match=False) # these will both run just fine

这实际上是您所需要的,您非常接近:)如果未指定match,则默认为True,否则调用者可以选择设置。