В упражнении 39 Learn Python жесткий путь (http://learnpythonthehardway.org/book/ex39.html), следующие функции определены (get_slot()
и get()
):Learn Python на EX39 Hard Way
def get_slot(aMap, key, default=None):
"""
Returns the index, key, and value of a slot found in a bucket.
Returns -1, key, and default (None if not set) when not found.
"""
bucket = get_bucket(aMap, key)
for i, kv in enumerate(bucket):
k, v = kv
if key == k:
return i, k, v
return -1, key, default
def get(aMap, key, default=None):
"""Gets the value in a bucket for the given key, or the default."""
i, k, v = get_slot(aMap, key, default=default)
return v
Зачем писать default=default
при вызове get_slot()
?
Мне кажется, что достаточно просто позвонить get_slot()
с «default»? ->get_slot(aMap, key, default)
Является ли default=default
чем-то связанным с параметрами позиционной функции с именем vs? (как обсуждается здесь: http://pythoncentral.io/fun-with-python-function-parameters/) или default=default
сделано по другой причине полностью?
В этом случае это одно и то же, но, как правило, хорошая практика (безопаснее) также использовать имена аргументов ключевого слова, даже если позиция совпадает. – Julien
в порядке, так как «по умолчанию» является именованным параметром, рекомендуется использовать аргумент ключевого слова 'default =' при вызове функции? Правильно ли я понял? – Sean