Можно ли задать значение по умолчанию для позиционного аргумента в функции или методе?
Ответ от нейросети
sobes.tech AI
В Python нельзя задать значение по умолчанию для позиционных аргументов в том смысле, что позиционные аргументы без имени всегда обязательны. Однако можно задать значения по умолчанию для именованных (keyword) аргументов, которые могут быть переданы как позиционные или по имени.
Если вы хотите, чтобы аргумент был необязательным и имел значение по умолчанию, его нужно объявлять после обязательных позиционных аргументов:
def func(a, b=10):
print(a, b)
func(5) # Выведет: 5 10
func(5, 20) # Выведет: 5 20
В Python 3.8+ можно использовать синтаксис позиционных только аргументов с / и именованных с *, но по умолчанию значения задаются для аргументов, которые могут быть переданы по имени.
Таким образом, если вы хотите иметь аргумент с значением по умолчанию, сделайте его либо именованным, либо позиционно-именованным, но не чисто позиционным без значения по умолчанию.