49

如何在 Python 的函数中声明全局变量?

也就是说,它不必在之前声明,但可以在函数之外使用。

4

2 回答 2

43

是的,但是为什么?

def a():
    globals()['something'] = 'bob'
于 2012-11-29T14:24:28.803 回答
19
def function(arguments):
    global var_name
    var_name = value #must declare global prior to assigning value

这将适用于任何功能,无论它是否在同一个程序中。

这是另一种使用方式:

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

注意:使用return内置将自动停止程序(或功能),无论它是否完成。

您可以在这样的函数中使用它:

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

这将允许您在函数之外使用变量。不一定要声明为全局的。

此外,要将变量从一个函数使用到另一个函数,您可以执行以下操作:

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]

这将允许您在另一个函数或程序中使用该变量,而无需使用全局变量或return内置变量。

于 2012-11-29T14:30:36.043 回答