О важности порядка позиционных аргументов
Если нарушить порядок следования аргументов в вызове при использовании позиционных аргументов, возможны неожиданные результаты:
def describe_pet(animal_type, pet_name):
. ."""Выводит информацию о животном."""
. .print(" I have a " + animal_type + ".")
. .print("My " + animal_type + "'s name is " + pet_name.title() + ".")
. .
describe_pet('harry', 'hamster')
В этом вызове функции сначала передается имя, а потом тип животного. Так как аргумент 'harry' находится в первой позиции, значение сохраняется в параметре animal_type, а аргумент 'hamster' сохраняется в pet_name. На этот раз вывод получается бессмысленным:
I have a harry.
My harry's name is Hamster.
Если вы получили подобные странные результаты, проверьте, соответствует ли порядок следования аргументов в вызове функции порядку параметров в ее определении.