2014-11-28 5 views
-1

im делает небольшой проект для себя, чтобы понять функцию, если инструкция в python. Я хочу вызвать «имя» внутри функции пользователя и использовать его в функции джунглей.Как вызвать переменную внутри функции, а затем использовать ее в другой функции

def user(): 
    global name 
    name = raw_input("Whats your name?") 

def jungle(): 

    print name, "Please, Select your Enemy" 
    print '\n'.join(jungle_enemy) 

    enemy = raw_input('> ') 

    if enemy == "1": 
     print "The Lion Will eat you alive." 
     game_over() 
     exit_countdown() 

    elif enemy == "2": 
     print "The Jaguar will tear you apart." 
     game_over() 
     exit_countdown() 

    elif enemy == "3": 
     print "The Snake will eat you whole." 
     game_over() 
     exit_countdown() 

    else: 
     try_again("Are You Noob? \nNone of the Choice!") 
     jungle() 

, когда я запускаю этот код. это дает мне ошибку. NameError: глобальное имя 'name' не определено.

ответ

2

Глобальные переменные - плохая идея в целом. Лучше передать переменную к тому, кто нуждается в ней:

def user(): 
    return raw_input("Whats your name?") 

def jungle(name): 
    print name, "Please, Select your Enemy" 
    # etc. 

, а затем вызывать функции как этот

username = user() 
jungle(username) 

Если есть использовать глобальные имена, вы должны использовать global заявление во всех функции, которые используют эту переменную - поэтому вам нужно добавить global name в начале jungle(). Но не делайте этого. Посмотрите, какие глобальные переменные заняли JavaScript - вы не хотите делать это в Python.

+0

Великие умы .... – jonrsharpe

+0

спасибо. У меня появилась идея. –

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