如何在局部变量(在一个函数内)创建一个全局变量
可能重复:
在创建它们的函数中使用全局变量
我正在使用函数,以便我的程序不会一团糟,但我不知道如何将局部变量变为全局变量。
以下是实现相同目标的两种方法:
使用参数并返回(推荐)
def other_function(parameter):
return parameter + 5
def main_function():
x = 10
print x
x = other_function(x)
print x
当你运行main_function
,你会得到以下输出
>>> 10
>>> 15
使用全局变量(从不这样做)
x = 0 # The initial value of x, with global scope
def other_function():
global x
x = x + 5
def main_function():
print x # Just printing - no need to declare global yet
global x # So we can change the global x
x = 10
print x
other_function()
print x
现在你会得到:
>>> 0 # Initial global value
>>> 10 # Now we've set it to 10 in `main_function()`
>>> 15 # Now we've added 5 in `other_function()`
只需在任何函数外声明你的变量:
globalValue = 1
def f(x):
print(globalValue + x)
如果您需要从函数内分配给全局,请使用global
语句:
def f(x):
global globalValue
print(globalValue + x)
globalValue += 1
如果你需要访问一个函数的内部状态,你最好使用一个类。 通过定义__call__
,可以使类实例的行为类似于函数:
class StatefulFunction( object ):
def __init__( self ):
self.public_value = 'foo'
def __call__( self ):
return self.public_value
>> f = StatefulFunction()
>> f()
`foo`
>> f.public_value = 'bar'
>> f()
`bar`
链接地址: http://www.djcxy.com/p/23879.html
上一篇: How to make a local variable (inside a function) global