MEOW
Если не сложно, то объясните что значит “dest” и “action”
dest - задаёт имя атрибута, под которым будет сохранено значение разобранного аргумента командной строки.
Если dest не задать, то имя атрибута будет определено автоматически из названия параметра: -p будет сохранять под p; - -port будет сохранять под port; а если они оба заданы (-p и - -port), то будет браться тоже длинная опция и сохраняться под port. Если же задать dest, то имя будет браться из dest независимо от опций.
action - определяет способ разбора аргумента командной строки.
Если action не задать, то используется встроенный способ разбора: оно берёт значение аргумента и это значение сохраняет под именем атрибута. Например, ты указал -p 12345 - вот оно возьмёт 12345 и сохранит под p. Если же action задать, то оно может просто сохранить true в значение атрибута, если аргумент командной строки был найден. Например, ты указал -p 12345 - вот оно увидит -p и сохранит true под p, а 12345 посчитает вообще следующим аргументом.
Ну и ещё в action можно передать самодельное действие. Это когда ты пишешь объект, который обрабатывает аргумент командной строки твоим каким-то способом, который только ты знаешь, а потом этот объект ты подаёшь как действие через action и он используется для того, чтобы разобрать аргумент твоим придуманным способом. Тоже часто используется, потому что хоть argparse и хорош, иногда нужно свой разбор сделать, чтобы добавить точности в разборе или сделать сообщения об ошибках как-то поумнее.