2012-11-29 14 views

Antwort

23

Ja, aber warum?

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

tun Sie einfach, 'globales Etwas', es wird eine neue globale Variable erstellen, wenn sie nicht existiert. –

+2

explizit statt implizit ... - das macht es "offensichtlich", es ist eine schlechte Idee ... –

+2

@ F3AR3DLEGEND * globals my_var * funktioniert außerhalb der Funktion, ich habe es ausprobiert. – MrROY

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

Dies wird in jeder Funktion arbeiten, unabhängig davon im gleichen Programm ist oder nicht.

Hier ist eine andere Art und Weise, es zu benutzen:

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

HINWEIS: Die Verwendung der return integrierten in das Programm automatisch (oder die Funktion) stoppen, unabhängig davon, ob es beendet ist oder nicht.

Sie können dies wie folgt in einer Funktion verwenden:

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

Dies würde erlauben Sie außerhalb der Funktion die Variable zu verwenden. Muss nicht unbedingt global deklariert werden.

Zusätzlich eine Variable von einer Funktion zur anderen verwenden, können Sie etwas tun können:

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] 

Dies ermöglicht Ihnen, die Variable in einer anderen Funktion oder ein Programm zu verwenden, ohne eine globale Variable verwenden zu müssen oder return eingebaut.

+1

es ist nicht global, oder? Ich denke, es ist modulweit. –

+0

Ah ja, es ist nur modulweit. Die Verwendung der 'return' -Funktion sollte das jedoch beheben. –

Verwandte Themen