ficapy
3/1/2015 - 1:42 PM

args_foo.py

import argparse

foo1 = sum
foo2 = max
def main(test=None):
    parser = argparse.ArgumentParser(description="http://www.v2ex.com/t/173206")
    group = parser.add_mutually_exclusive_group()
    group.add_argument("-foo1", action="append", type=int, default=[2])
    group.add_argument("-foo2", nargs="+", type=int)
    return foo2(parser.parse_args(test).foo2) if parser.parse_args(test).foo2 else foo1(parser.parse_args(test).foo1)

if __name__ == "__main__":
    print main(test=["-foo1", "1"])
    print main(test=["-foo2", "1", "2"])