2016-06-23 1 views
0

Я использую t как глобальные и назначенную t значения из s1, s2 функции , но после того, как person1 он не собирается person2. И ошибка, как показано ниже, как я могу сделать эту переменная т глобальной, так что он может быть использован во всех функциях

File "C:\Users\Teja kaipa\Desktop\estimation.py", line 42, in person1 
if (t>1): 
    NameError: name 't' is not defined 
global t 

Код:

def s1(): 
    t=1 
    return t 
def s2(): 
    t=2 
    return t 
def s3(): 
    t=3 

def person1(): 
    output = 0 
    val1 = int(r1e1.get()) 
    val2 = int(r1w1.get()) 
    if ((val1-val2)==0): 
     output = 1+2*val1 
    else: 
     output = -2*abs(val1-val2) 
    r1n1m.delete(0, END) 
    r1n1m.insert(4,str(output))  
    if (t>1): 
     person2() 

def person2(): 
    val1= int(r1e2.get()) 
    val2= int(r1w2.get()) 
    if ((val1-val2)==0): 
     output = 1+2*val1 
    else: 
     output = -2*abs(val1-val2) 
    r1n2m.delete(0, END) 
    r1n2m.insert(4,str(output))  
    if (t>2): 
     person3() 
+0

Да, спасибо, это выглядит ABIT похоже. но я не мог соответствовать ему точно так же, как я начал заново. –

ответ

1

Внутри каждого модуля, в котором вы хотите изменить глобальную переменную, явно указав t в качестве глобальной переменной.

def func1(): 
    global t 
    t = 3 

def func2(): 
    global t 
    t = [1,2,3] 

def main(): 
    global t 
    func1() 
    print t 
    func2() 
    print t 

Вывод должен быть:

3 
[1, 2, 3] 
+0

Спасибо, я начинаю. Я изучаю вещи в Интернете, поэтому я просто пропустил некоторые вещи. Спасибо за поддержку :) –