Python变量定义的时间和空间及其作用域的重要性
为啥变量要有作用域呢? 我们在Python里遇到的内置、局部、全局及自由变量,就是说变量的作用域。 语言区分作用域,是为了复用变量名。引入作用域,相当于给变量划分了各自的“隔离区”,在不同”隔离区“里,查找变量变得很容易。 正是因为有了作用域,我们在函数内才可以随意使用变量名,而不担心其与全局变量、其他函数中的变量冲突——因为这两个作用域是分割的。 BASIC语言只有全局变量,你能想象吗?你在一个函数里命名的循环变量i,很可能跟全局变量冲突。写起程序来,举步维艰。且会导致很多修改、检索问题,维护很困难。 Python 有哪些作用域呢? Python是动态类型语言,变量是在定义的时候赋值的。这句话的意思我们分以下几个方面来理解: a = 1 赋值时定义变量 from tools import cubie 导入时定义变量 cubie def fun():pass 定义函数,绑定变量fun def fun(name=None):pass 定义变量name为函数fun的形式变量(也是局部变量),同时定义函数,绑定便令fun class Car:pass 定义类,绑定类名Car 以上,我们弄清了变量定义的时刻,下面来看变量的作用域,也就是变量的活动空间怎么规定出来的。 变量作用域取决于其 定义位置。 定义在函数内部的变量、定义在函数声明中的形式参数,视为局部变量。 定义在 .py 文件内的,且函数、类之外的变量,视为全局变量。 定义在函数中,嵌套函数外,且被嵌套函数引用的变量,视为自由变量。 定义在builtin中的变量,视为内置变量。 面对如此复杂的四种变量作用域,用一个例子来说明它们的访问规则。 (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |