请帮助,我的代码中有此功能,将来会成为一个模块。到目前为止,我还没有做过模块,但是我想允许用户将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?
答案 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,否则调用者可以选择设置。