You can see how optparse works by opening the optparse.py file in your python installation.
In the windows it was:
C:\Python27\Lib\optparse.py
The _match_abbrev function is on line 1675:
def _match_abbrev(s, wordmap): """_match_abbrev(s : string, wordmap : {string : Option}) -> string Return the string key in 'wordmap' for which 's' is an unambiguous abbreviation. If 's' is found to be ambiguous or doesn't match any of 'words', raise BadOptionError. """
which is called _match_long_opt , which is called _process_long_opt
This seems to be documented in this section of the documentation:
opt_str
is a string of options that is visible on the command line that calls the callback. (If the shortened long version was used, opt_str will be a complete, canonical option string, for example. If the user places --foo on the command line as an abbreviation for -foobar, then opt_str will be "--foobar".)
If we change the example you provided:
from optparse import OptionParser parser = OptionParser() parser.disable_interspersed_args() parser.add_option("-f", "--file", dest="filename") parser.add_option("-z", "--film", dest="filmname") (options, args) = parser.parse_args() print options
In the test --fil example --fil you get an error message:
error: ambiguous option: --fil (--file, --film?)
Thus, it can be used for shorter names, but if there is any ambiguity, then the opponent will cease.
Noelkd
source share