python函数-作用域

可以把作用域”看成是变量的容器。当作用域被销毁时,所有保存在该作用 域内的变量的值就被丢弃了只有一个全局作用域,它是在程序开始时创建的。如 果程序终止,全局作用域就被销毁,它的所有变量就被丢弃了。

一个函数被调用时,就创建了一个局部作用域。在这个函数内赋值的所有变量, 存在于该局部作用域内。该函数返回时,这个局部作用域就被销毁了,这些变量就 丢失了。下次调用这个函数,局部变量不会记得该函数上次被调用时它们保存的值。

一、局部作用域

(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.如果该变量没有用在赋值语句中,它就是全局变量。

 

原文地址:https://www.cnblogs.com/dingkailinux/p/8018350.html