2014-03-29 4 views
0

Какой лучший способ реализовать это - повторное использование пользовательского ввода в меню? Вот мой пример кода:Python - повторное использование пользовательского ввода в меню

def input(): 
    user = raw_input('user: ') 
    passwd = getpass.getpass('passwd: ') 
    return (user,passwd) 

def function1(): 
    user, passwd, vcenter = input() 
do something 

def function2(): 
    user, passwd, vcenter = input() 
do something 

def function3(): 
    user, passwd, vcenter = input()  
    do something 

def main(): 
    while True: 
     if choice == 1: 
      function1() 
     elif choice == 2: 
      function2() 
     elif choice == 3: 
      function3() 
     else: 
      print 'Choose from the options only!' 
     break 
+1

Я не совсем понимаю, о чем вы спрашиваете, но у меня такое чувство, что ваш вопрос слишком широк. Этот веб-сайт обычно фокусируется на вопросах, более конкретных, чем «как лучше всего реализовать xyz?» – DaoWen

+0

Как @DaoWen сказал, пожалуйста, сузите свой вопрос, предпочитая предоставление псевдокода того, как должен выглядеть конечный результат. – sshashank124

ответ

0

Я думаю, что я получаю то, что вы имеете в виду, вы хотите использовать вход() один раз в то время цикла, а не повторять называть его в каждой функции. если это так, я предлагаю это решение:

def input(): 
    user = raw_input('user: ') 
    passwd = getpass.getpass('passwd: ') 
    return (user,passwd) 

def function1(param): 
    user, passwd = param 
    do something 

def function2(param): 
    user, passwd = param 
    do something 

def function3(param): 
    user, passwd = param 
    do something 

def main(): 
    while True: 
     if choice in [1,2,3]: 
      param = input() 
     if choice == 1: 
      function1(param) 
     elif choice == 2: 
      function2(param) 
     elif choice == 3: 
      function3(param) 
     else: 
      print 'Choose from the options only (1, 2, 3): ' 
     break 

надеюсь, что это поможет.

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