加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

Python变量定义的时间和空间及其作用域的重要性

发布时间:2021-05-25 16:51:18 所属栏目:语言 来源:互联网
导读:为啥变量要有作用域呢? 我们在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中的变量,视为内置变量。

面对如此复杂的四种变量作用域,用一个例子来说明它们的访问规则。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读