def f(a, b = 1, c = 2):
...
И она вызывается дважды:
1. f(2, c = 2):
- a = 2 (первый позиционный аргумент)
- b = 1 (значение по умолчанию, так как не указано)
- c = 2 (именованный аргумент)
Поэтому выводится: a is: 2 b is: 1 c is: 2
2. f(c = 100, a = 110):
- a = 110 (именованный аргумент)
- b = 1 (значение по умолчанию, так как не указано)
- c = 100 (именованный аргумент)
Поэтому выводится: a is: 110 b is: 1 c is: 100
Python сначала обрабатывает позиционные аргументы, а затем именованные. Если какой-то параметр не указан, используется его значение по умолчанию. В нашем случае параметр b ни разу не был указан явно, поэтому всегда использовалось его значение по умолчанию - 1.
>>Click here to continue<<