webentwicklung-frage-antwort-db.com.de

Ist es möglich, globale Variablen in einer Funktion in Python zu definieren?

Wie deklariere ich eine globale Variable in einer Funktion in Python?

Das heißt, dass es nicht vorher deklariert werden muss, sondern außerhalb der Funktion verwendet werden kann.

37
MrROY

Ja aber warum?

def a():
    globals()['something'] = 'bob'
31
Jon Clements
def function(arguments):
    global var_name
    var_name = value #must declare global prior to assigning value

Dies funktioniert in jeder Funktion, unabhängig davon, ob sie sich im selben Programm befindet oder nicht.

Hier ist eine andere Möglichkeit, es zu verwenden:

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

HINWEIS: Wenn Sie das integrierte return verwenden, wird das Programm (oder die Funktion) automatisch gestoppt, unabhängig davon, ob es beendet ist oder nicht.

Sie können dies in einer Funktion wie der folgenden verwenden:

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

Auf diese Weise können Sie die Variable außerhalb der Funktion verwenden. Muss nicht unbedingt global deklariert werden.

Um eine Variable von einer Funktion zur nächsten zu verwenden, können Sie außerdem Folgendes tun:

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]

Auf diese Weise können Sie die Variable in einer anderen Funktion oder einem anderen Programm verwenden, ohne eine globale Variable oder das integrierte return zu verwenden.

11
Rushy Panchal