Cómo obtener subparsers argparse de un analizador padre (para inspeccionar los valores predeterminados)

Supongamos que creo un analizador con un valor predeterminado para un argumento, y luego le doy un sub analizador con un valor predeterminado adicional para un argumento.

In [1]: parser = argparse.ArgumentParser(description='test')

In [2]: parser.add_argument("--test", dest="test", default="hello")
Out[2]: _StoreAction(option_strings=['--test'], dest='test', nargs=None, const=None, default='hello', type=None, choices=None, help=None, metavar=None)

In [3]: parser.get_default("test")
Out[3]: 'hello'

In [4]: subparsers = parser.add_subparsers(dest="command")

In [5]: parser_other = subparsers.add_parser("other")

In [6]: parser_other.add_argument("--other-test", dest="other_test", default="world")
Out[6]: _StoreAction(option_strings=['--other-test'], dest='other_test', nargs=None, const=None, default='world', type=None, choices=None, help=None, metavar=None)

In [7]: parser_other.get_default("other_test")
Out[7]: 'world'

Todo esta bien. Pero supongamos que tengo una función que crea y devuelve el analizador primarioparser desde arriba, pero sin acceso directo al subparser.

¿Cómo puedo imprimir valores predeterminados para los argumentos del subparser? ¿O obtener un identificador para cada subparser por separado?

In [8]: parser._subparsers._defaults
Out[8]: {}

In [9]: parser._subparsers.get_default("other_test")  # is None

Parece que no hay más atributos o métodos deparser._subparsers o deparser eso podría mostrar valores predeterminados.

El problema general es: ¿cómo acceder mediante programación a los valores predeterminados del subparser cuando solo tiene un identificador para el analizador padre?

Respuestas a la pregunta(2)

Su respuesta a la pregunta