@@ -1209,8 +1209,7 @@ def __call__(self, parser, namespace, values, option_string=None):
12091209 # namespace for the relevant parts.
12101210 subnamespace , arg_strings = parser .parse_known_args (arg_strings , None )
12111211 for key , value in vars (subnamespace ).items ():
1212- if not hasattr (namespace , key ):
1213- setattr (namespace , key , value )
1212+ setattr (namespace , key , value )
12141213
12151214 if arg_strings :
12161215 vars (namespace ).setdefault (_UNRECOGNIZED_ARGS_ATTR , [])
@@ -1844,6 +1843,11 @@ def parse_known_args(self, args=None, namespace=None):
18441843 if action .default is not SUPPRESS :
18451844 setattr (namespace , action .dest , action .default )
18461845
1846+ # add any parser defaults that aren't present
1847+ for dest in self ._defaults :
1848+ if not hasattr (namespace , dest ):
1849+ setattr (namespace , dest , self ._defaults [dest ])
1850+
18471851 # parse the arguments and exit if there are any errors
18481852 if self .exit_on_error :
18491853 try :
@@ -1854,11 +1858,6 @@ def parse_known_args(self, args=None, namespace=None):
18541858 else :
18551859 namespace , args = self ._parse_known_args (args , namespace )
18561860
1857- # add any parser defaults that aren't present
1858- for dest in self ._defaults :
1859- if not hasattr (namespace , dest ):
1860- setattr (namespace , dest , self ._defaults [dest ])
1861-
18621861 if hasattr (namespace , _UNRECOGNIZED_ARGS_ATTR ):
18631862 args .extend (getattr (namespace , _UNRECOGNIZED_ARGS_ATTR ))
18641863 delattr (namespace , _UNRECOGNIZED_ARGS_ATTR )
0 commit comments