栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在python中定义自由变量?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在python中定义自由变量?

自由变量的定义:已使用,但 既不是global也不是bound

例如:

  1. x
    在代码1中不是免费的,因为它是一个 全局 变量。
  2. x``bar()
    在代码2中不是免费的,因为它是一个 绑定 变量。
  3. x
    在中是免费的
    foo()

Python的区别在于闭包。当前环境中未定义自由变量,即局部变量的集合, 也不
是全局变量!因此,必须在其他地方定义。这就是闭包的概念。在代码2中,

foo()
关闭于中
x
定义的
bar()
。Python使用词法作用域。这意味着,解释器仅通过查看代码即可确定范围。

例如:

x
在中被称为
foo()
,因为
foo()
被包围
bar()
,并
x
在中绑定
bar()

全局范围由Python专门处理。可以将全局作用域视为最外部作用域,但是由于性能原因,我没有这样做。因此,不可能

x
自由全球化

免税

生活不是那么简单。存在 自由的全局 变量。Python文档(执行模型)说:

全局语句的作用域与同一块中的名称绑定操作相同。如果最接近的自由变量包围范围包含全局语句,则将自由变量视为全局语句。

>>> x = 42>>> def foo():...   global x...   def baz():...     print(x)...     print(locals())...   baz()... >>> foo()42{}

我自己不知道 我们都在这里学习。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647992.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号