2014-05-22 57 views
-1

有了多個函數,我該如何編寫代碼才能輸入函數變量的值來獲得結果?使用argparse,如何分析命令行參數以指定變量值?

def sum(i, j): 
     return i+j 

def totalsum(k): 
     return sum(a, b) + k 

print totalsum(c) 

命令行提示符

python gendata.py -–a=1 –-b=2 –-c=3 
+3

的[argparse教程](https://docs.python.org/2/howto/argparse.html)是一個良好的開端。 – tdelaney

+0

我想你可能希望你的第二個函數有三個參數,除非我不瞭解你。 – ilent2

+0

爲什麼'sum'忽略它的參數並返回兩個全局變量的總和? – chepner

回答

0

我不完全理解你的函數的用法,但這裏是你的程序的改編(基於我對你正在努力完成的能力的最好):

import argparse 

parser = argparse.ArgumentParser(description='Process some integers.') 
parser.add_argument('a', type=int) 
parser.add_argument('b', type=int) 
parser.add_argument('c', type=int) 

args = parser.parse_args() 

def sum(i, j): 
     return i+j 

def totalsum(k): 
     return sum(args.a, args.b) + k 

print totalsum(args.c) 

用法:

python script.py 1 2 3 
6 
+0

我正在嘗試使用命令行輸入函數參數的值,這是函數的簡化版本 –

+0

哦,您編輯了您的程序... – Dair

+0

對其進行了適當的更新。 – Dair

0

你可以做如下:

import argparse 
parser = argparse.ArgumentParser() 

parser.add_argument("--a", type=int) 
parser.add_argument("--b", type=int) 
parser.add_argument("--c", type=int) 

args = parser.parse_args() 

print(args.a, args.b, args.c) 
+0

'parser.add_argument(「 - a」,type = int)' –

+0

@JacobodeVera Thx。 – Marcin

相關問題