Python 萌新请教有关 global 变量和 OrderedDict 的问题

2019-08-31 07:18:47 +08:00
 WizardYu
from collections import OrderedDict

dict = OrderedDict()
def main():
list = [['a', 1], ['b', 2], ['c', 3]]
global dict = OrderedDict(list)

最后一句报语法错误,请大佬指点一下原因...
1470 次点击
所在节点    Python
5 条回复
banxi1988
2019-08-31 07:53:47 +08:00
1. 错误提示很明显. `dict` 重定义了.
你可以看 `global` 关键词的说明:
> Names listed in a global statement must not be used in the same code block textually preceding that global statement.

2. dict 是内置的类名,用来作变量名,习惯不好.

3. 发贴不注意缩进, 差评.
echo1937
2019-08-31 07:57:08 +08:00
首先,使用 global 时,先声明,再赋值:
global dict
dict = OrderedDict(list)

其次,dict 是 build-in name,最好不要拿来当变量名
WizardYu
2019-08-31 07:58:19 +08:00
@banxi1988 emmm 我暂时还不知道怎么在这里缩进😂不好意思我会查一查
WizardYu
2019-08-31 08:13:15 +08:00
@echo1937 @banxi1988 解决啦!谢谢你们 hhh,是没有提前声明的事,命名问题我以后也会注意
swulling
2019-08-31 08:15:54 +08:00
原则上别用全局变量

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/596677

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX