我跑了这个命令
./run.sh -kryder_rate=.9 -tech_kryder_moveout=.10 -kryder_life=5 -total_runs=20 -duration=100 -purchasecost=100 -runCost=66 -horizon=20 -abc=1
我得到args对象得到这个(注意虽然我通过它们但没有得到'abc'和'horizon'
Namespace(abc=None, deviceType=None, duration='100', horizon=None, kryder_life='5', kryder_rate='.9', purchasecost='100', runCost='66', tech_kryder_moveout='.10')
但如果我减少参数数量
./run.sh -kryder_rate=.9 -tech_kryder_moveout=.10 -kryder_life=5 -total_runs=20 -duration=100 -horizon=20 -abc=1
然后它得到'地平线'和'abc'
Namespace(abc='1', deviceType=None, duration='100', horizon='20', kryder_life='5', kryder_rate='.9', purchasecost=None, runCost=None, tech_kryder_moveout='.10')
要传递的参数数量是否有限制?
我搜索了但谷歌告诉我没有这样的限制。
这就是我解析的方式
parser = argparse.ArgumentParser(description='Description of Economic Model Pgm')
parser.add_argument('-kryder_rate','--kryder_rate', help='kryder_rate', required=False)
parser.add_argument('-kryder_life','--kryder_life', help='kryder_life', required=False)
parser.add_argument('-duration','--duration', help='duration', required=False)
parser.add_argument('-runCost','--runCost', help='runCost', required=False)
parser.add_argument('-purchasecost','--purchasecost', help='purchasecost', required=False)
parser.add_argument('-deviceType','--deviceType', help='deviceType', required=False)
parser.add_argument('-horizon','--horizon', help='horizon', required=False)
parser.add_argument('-tech_kryder_moveout','-tech_kryder_moveout',help='tech_kryder_moveout',required=False)
parser.add_argument('-abc','--abc',help='test',required=False)
args = parser.parse_args()
print args