О важности порядка позиционных аргументов

We use cookies. Read the Privacy and Cookie Policy

Если нарушить порядок следования аргументов в вызове при использовании позиционных аргументов, возможны неожиданные результаты:

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.

Если вы получили подобные странные результаты, проверьте, соответствует ли порядок следования аргументов в вызове функции порядку параметров в ее определении.