Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建全局变量?_Python_Variables_Global - Fatal编程技术网

Python 创建全局变量?

Python 创建全局变量?,python,variables,global,Python,Variables,Global,对于下面的代码,我有一些疑问 def spam(): global eggs eggs = 'spam' eggs ='global' spam() print(eggs) 结果是垃圾邮件。 我的问题如下: 代码中有两个全局变量吗? 为什么它只执行eggs='spam',而不执行eggs='global'? 先谢谢你 该代码中只有一个全局变量,名为eggs。您给它赋值两次,首先是函数中的字符串“global”,然后是字符串“spam” 我认为术语global在Python中有

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

def spam():
    global eggs
    eggs = 'spam'
eggs ='global'
spam()
print(eggs) 
结果是
垃圾邮件
。 我的问题如下: 代码中有两个全局变量吗? 为什么它只执行
eggs='spam'
,而不执行
eggs='global'

先谢谢你

该代码中只有一个全局变量,名为
eggs
。您给它赋值两次,首先是函数中的字符串“global”,然后是字符串“spam”


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

该代码中只有一个名为
eggs
的全局变量。您给它赋值两次,首先是函数中的字符串“global”,然后是字符串“spam”


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

它确实执行
eggs='global'
,它的值会再次被
eggs='spam'
更改


您的spam函数访问全局范围并将
eggs
更改为
'spam'
它确实执行
eggs='global'
,它的值再次被
eggs='spam'
更改


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

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

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

“除非您导入了它,否则它将不存在”-即使这样,如果您使用了来自导入的
,您将只使用您自己的新全局变量来处理您的模块,并且分配给一个变量不会影响另一个变量。“除非您导入了它,否则它将不存在”-即使这样,如果您使用了来自导入的
,那么您将使用自己的新全局变量来处理模块,并且对一个变量的赋值不会影响另一个变量。