2012-11-29 17 views

Odpowiedz

23

Tak, ale dlaczego?

def a(): 
    globals()['something'] = 'bob' 
+7

po prostu "coś globalnego", utworzy nową zmienną globalną, jeśli nie istnieje. –

+2

jawny, a nie niejawny ... - to czyni go bardziej "oczywistym", ponieważ jest złym pomysłem ... –

+2

@ F3AR3DLEGEND * globals my_var * może być użyty poza funkcją, próbowałem tego. – MrROY

5
def function(arguments): 
    global var_name 
    var_name = value #must declare global prior to assigning value 

ta będzie działać w dowolnej funkcji, bez względu na to w tym samym programie, czy nie.

Oto kolejny sposób z niego korzystać:

def function(): 
    num = #code assigning some value to num 
    return num 

UWAGA: Korzystanie z return wbudowaną automatycznie zatrzymać program (lub funkcja), niezależnie od tego, czy jest ona zakończona, czy nie.

Można to wykorzystać w funkcji takich jak to:

if function()==5 #if num==5: 
    #other code 

Pozwoliłoby to na użycie zmiennej poza funkcją. Nie musi być deklarowane globalnie.

Ponadto, aby użyć zmiennej z jednej funkcji do innego, można zrobić coś takiego:

import primes as p #my own example of a module I made 
p.prevPrimes(10) #generates primes up to n 
for i in p.primes_dict: 
    if p.primes_dict[i]: #dictionary contains only boolean values 
     print p.primes_dict[i] 

To pozwoli Ci użyć zmiennej w innej funkcji lub programu, bez konieczności korzystania zmienną globalną lub wbudowany return.

+1

to nie jest globalne, prawda? Myślę, że to moduł dla całego. –

+0

Ach tak, jest to tylko moduł. Jednak użycie funkcji 'return' powinno to naprawić. –

Powiązane problemy