Python局部和全局作用域
以下概念摘抄自《python编程从入门到实践——Eric Matthes》
Python局部和全局作用域:
处于局部作用域的变量被称为“局部变量”,处于全局作用域的变量被称为“全局变量”。一个变量必是其中一种,不能既是局部的又是全局的。
作用域很重要,理由如下:
(1)全局作用域中的代码不能使用任何局部变量;
(2)但是,局部作用域可以访问全局变量;
(3)一个函数的局部作用域中的代码,不能使用其他局部作用域中的变量;
(4)如果在不同的作用域中,可以用相同的名字命名不同的变量。
虽然在小程序中使用全局变量没有太大问题,单当程序变得越来越大时,依赖全局变量就是一个坏习惯。
一、局部变量不能在全局作用域内使用
二、局部作用域不能使用其他局部作用域内的变量
三、全局变量可以在局部作用域中读取
四、名称相同的局部变量和全局变量
五、global语句–在函数内修改全局变量
六、global语句–区分一个变量的作用域
区分一个变量是处于局部作用域还是全局作用域,有以下4条法则:
(1)如果变量在全局作用域中使用(即在所有函数之外),该变量是全局变量;
(2)如果在一个函数中,有针对性该变量的global语句,该变量是全局变量;
(3)如果在一个函数中,该变量用于函数中的赋值语句,该变量是局部变量;
(4)如果在一个函数中,该变量没有用在函数中的赋值语句中,该变量是全局变量。