2016-11-02 4 views
0

У меня есть этот сегмент кода на языке python. Я хочу иметь глобальную переменную с именем filetext. Однако он не работает должным образом, я хочу изменить переменную filetext в первом методе, а затем использовать его во втором методе.Методы области переменной Python

filetext = "x" 

def method1(): 

    filetext = "heyeeh" 

def method2(): 
    print(filetext) 

Это дает «x». Почему, и как я могу это преодолеть?

+1

Используйте [ 'global' оператор] (https://docs.python.org/2/reference/simple_stmts.html# заместитель глобального заявление). – Kevin

+1

объявите свою переменную глобальной, поскольку она является неизменной. –

ответ

0

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

filetext = "x" 

def method1(): 
    global filetext # added global here 
    filetext = "heyeeh" 

def method2(): 
    print filetext 

Пример запуска:

>>> method2() # print original string 
x 
>>> method1() # Updates the value of global string 
>>> method2() # print the updated value of string 
heyeeh 
Смежные вопросы