Python本地和全局变量

时间:2017-07-13 10:24:10

标签: python python-2.7

def f():
    global s
    print s
    s = "That's clear."
    print s     

s = "Python is great!" 
f()
print s

输出:

Python is great!
That's clear.
That's clear.

按照程序,最后一个print语句应该返回" s = Python很棒"因为我认为S应该被称为全局变量。

2 个答案:

答案 0 :(得分:2)

您修改了函数(f)中的全局变量,因此变量现在具有您最后修改的值 即“#34;那很清楚。"

答案 1 :(得分:0)

输出正确。将s定义为全局变量后,您打印分配给该Python is great的s的值,然后将That's clear.分配给s - {{1}现在是全局的,所以当你在函数中为它指定s时,它也会成为外部作用域中的值。

这是关于Scoping Rules的一个很好的stackoverflow答案。