2
def add(x,y):
print x+y
def square(a):
print a**2
现在我定义的Linux命令(选项)使用argparse此功能的作用。
我试着用这个代码
import argparse
# Create Parser and Subparser
parser = argparse.ArgumentParser(description="Example ArgumentParser")
subparser = parser.add_subparsers(help="commands")
# Make Subparsers
add_parser = subparser.add_parser('--add', help="add func")
add_parser.add_argument("x",type=float,help='first number')
add_parser.add_argument("y",type=float,help='second number')
add_parser.set_defaults(func='add')
square_parser = subparser.add_parser('--square', help="square func")
square_parser.add_argument("a",type=float,help='number to square')
square_parser.set_defaults(func='square')
args = parser.parse_args()
def add(x,y):
print x + y
def square(a):
print a**2
if args.func == '--add':
add(args.x,args.y)
if args.func == '--square':
square(args.a)
但我得到的错误,同时通过命令python code.py --add 2 3
invalid choice: '2' (choose from '--add', '--square')
删除 - 从子分析器名称“” 。只使用'添加'。它们不应该看起来像是可选项的标志。还请查看有关使用带有子分析器的'setdefaults'的文档。 – hpaulj