2014-05-22 2 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

Смежные вопросы