相关疑难解决方法(0)

在函数中使用全局变量

如何在函数中创建或使用全局变量?

如果我在一个函数中创建一个全局变量,我如何在另一个函数中使用该全局变量?我是否需要将全局变量存储在需要访问的函数的局部变量中?

python scope global-variables

2939
推荐指数
22
解决办法
307万
查看次数

全局词典不需要关键字全局来修改它们吗?

可能重复:
为什么在这种情况下不需要全局关键字?

我想知道为什么我可以在没有global关键字的情 为什么它对其他类型是强制性的?这背后有什么逻辑吗?

例如代码:

#!/usr/bin/env python3

stringvar = "mod"
dictvar = {'key1': 1,
           'key2': 2}

def foo():
    dictvar['key1'] += 1

def bar():
    stringvar = "bar"
    print(stringvar)

print(dictvar)
foo()
print(dictvar)

print(stringvar)
bar()
print(stringvar)
Run Code Online (Sandbox Code Playgroud)

给出以下结果:

me@pc:~/$ ./globalDict.py 
{'key2': 2, 'key1': 1}
{'key2': 2, 'key1': 2}  # Dictionary value has been changed
mod
bar
mod
Run Code Online (Sandbox Code Playgroud)

我期待的地方:

me@pc:~/$ ./globalDict.py 
{'key2': 2, 'key1': 1}
{'key2': 2, 'key1': 1}  # I didn't use global, so dictionary remains the same
mod
bar
mod
Run Code Online (Sandbox Code Playgroud)

python dictionary scope global global-variables

32
推荐指数
2
解决办法
5万
查看次数

为什么在这种情况下不需要全局关键字?

cache = {}
def func():
    cache['foo'] = 'bar'
print cache['foo'] 
Run Code Online (Sandbox Code Playgroud)

产量

bar
Run Code Online (Sandbox Code Playgroud)

为什么这样做以及为什么不需要使用global关键字?

python global-variables

16
推荐指数
1
解决办法
2310
查看次数

标签 统计

global-variables ×3

python ×3

scope ×2

dictionary ×1

global ×1