可以把作用域”看成是变量的容器。当作用域被销毁时,所有保存在该作用 域内的变量的值就被丢弃了,只有一个全局作用域,它是在程序开始时创建的。如 果程序终止,全局作用域就被销毁,它的所有变量就被丢弃了。
一个函数被调用时,就创建了一个局部作用域。在这个函数内赋值的所有变量, 存在于该局部作用域内。该函数返回时,这个局部作用域就被销毁了,这些变量就 丢失了。下次调用这个函数,局部变量不会记得该函数上次被调用时它们保存的值。
一、局部作用域
(1)在被调用函数内赋值的变元和变量,处于该函数的“局部作用域”。
(2)处于局部作用域的变量,被称为“局部 变量”。
二、全局作用域
(1)在所有函 数之外赋值的变量,属于“全局作用域”。
(2)处于全局作用域的变量,被称为“全局变量”。
三、作用域的重要性
(1)全局作用域中的代码不能使用任何局部变量;
(2)但是,局部作用域可以访问全局变量;
(3)一个函数的局部作用域中的代码,不能使用其他局部作用域中的变量。
(4)如果在不同的作用域中,你可以用相同的名字命名不同的变量。
四、global语句
gloabl语句可以在函数内创建全局变量。
在函数内使用 "global 变量"
#!/usr/bin/env python #coding:utf-8 def spam(): global eggs eggs = 'spam' eggs = 'global' spam() print(eggs) 输出结果是'spam'
五、区分变量是全局变量还是局部变量的四种法则
1.如果变量在全局作用域中使用(即在所有函数之外),它就总是全局变量。
2.如果在一个函数中,有针对该变量的 global 语句,它就是全局变量。
3.如果该变量用于函数中的赋值语句,它就是局部变量。
4.如果该变量没有用在赋值语句中,它就是全局变量。