Jak zadeklarować zmienną globalną w funkcji w Pythonie?Czy jest możliwe zdefiniowanie zmiennych globalnych w funkcji w Pythonie
Oznacza to, że nie musi być zadeklarowana wcześniej, ale może być używana poza funkcją.
Jak zadeklarować zmienną globalną w funkcji w Pythonie?Czy jest możliwe zdefiniowanie zmiennych globalnych w funkcji w Pythonie
Oznacza to, że nie musi być zadeklarowana wcześniej, ale może być używana poza funkcją.
Tak, ale dlaczego?
def a():
globals()['something'] = 'bob'
po prostu "coś globalnego", utworzy nową zmienną globalną, jeśli nie istnieje. –
jawny, a nie niejawny ... - to czyni go bardziej "oczywistym", ponieważ jest złym pomysłem ... –
@ F3AR3DLEGEND * globals my_var * może być użyty poza funkcją, próbowałem tego. – MrROY
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
.
to nie jest globalne, prawda? Myślę, że to moduł dla całego. –
Ach tak, jest to tylko moduł. Jednak użycie funkcji 'return' powinno to naprawić. –
Tak, jest to możliwe. Co próbowałeś, co nie działało? –
'global my_var', gotowe. –