创建全局变量?

时间:2016-12-16 19:54:00

标签: python variables global

对于下面的代码,我有一些疑问。

def spam():
    global eggs
    eggs = 'spam'
eggs ='global'
spam()
print(eggs) 

结果是spam。 我的问题如下: 我们在该代码中有两个全局变量吗? 为什么它仅执行eggs = 'spam'而不执行eggs = 'global'? 先感谢您。

3 个答案:

答案 0 :(得分:3)

您只有一个全局变量,在该代码中名为eggs。您为其分配了两次值,首先使用字符串'global',然后在函数中再次使用字符串'spam'。

我认为术语global在Python中有点用词不当。名称仅对模块是全局的,因此如果您尝试从另一个模块访问eggs,除非您导入它,否则它将不存在。

答案 1 :(得分:1)

执行eggs = 'global',其值再次由eggs = 'spam'更改。

您的垃圾邮件功能会访问全局范围,并将eggs更改为'spam'

答案 2 :(得分:0)

结果是垃圾邮件,因为您在将“全局”分配给鸡蛋后运行了该过程。该程序将“垃圾邮件”分配给鸡蛋。

相关问题