python中if for 作用域问题
先看一段代码
class Car():def __init__(self,name):self.name = namedef __repr__(self):return self.nameif __name__ == '__main__':import weakrefcars = {Car('bj'),Car('bm'),Car('dz')} (1)weak = weakref.WeakValueDictionary()for i in cars: (2)weak[i.name] = iprint(list(weak.keys()))del cars (3)print(list(weak.keys()))
代码的输出
['bj', 'bm', 'dz']
['dz']
(1)创建了一个Car对象的集合
(2)将Car对象的name属性作为键,Car对象作为值,创建了一个映射,这个映射的值是弱引用
(3)删除cars引用
正常来讲删除掉一个对象的所有引用(不包括弱引用)后,这个对象将会被销毁,然而在这里我们通过弱引用发现 ‘dz’ 这个对象并没有被销毁,这是因为 for 循环中那个 i 是全局变量,他仍然保持这对 ‘dz’ 这个对象的一个引用,因此 ‘dz’ 并没有被销毁。
再看一段代码
def func():if True:a = 12print(a)
if __name__ == '__main__':func()
来看控制台输出
12
在func函数中if外的代码可以访问if内的变量,说明if内的作用域和if外是同一个作用域,在上面for中也是一样的,这说明if for 等语句内部的作用域和外部的作用域是相同的。
python中if for 作用域问题相关推荐
- python中函数的作用域_Python中的函数作用域
在python中,一个函数就是一个作用域 name = 'xiaoyafei' def change_name(): name = '肖亚飞' print('在change_name里的name:', ...
- python中变量的作用域有几种_Python中变量的作用域(variable scope)
http://www.crifan.com/summary_python_variable_effective_scope/ 解释python中变量的作用域 示例: 1.代码版 #!/usr/bin/ ...
- 【Python】Python中令人头疼的变量作用域问题,终于弄清楚了
[Python]Python中令人头疼的变量作用域问题,终于弄清楚了_fengdu78的博客-CSDN博客 [Python]Python中令人头疼的变量作用域问题,终于弄清楚了_fengdu78的博客 ...
- Python中的变量作用域
1.变量的作用域:即变量的有效范围.变量并不是在哪个位置都可以访问的,访问权限取决于这个变量是在哪里赋值的,也就是在哪个作用域内的. 2.在Python中,没有块级作用域,也就是说类似if语句块.fo ...
- Python中令人头疼的变量作用域问题,终于弄清楚了
来源:Python数据之道 作者:大奎 整理:阳哥 学习Python变量过程中,曾经为变量混乱的作用域问题头疼不已,全局变量.局部变量.自由变量傻傻分不清,今天来跟大家分享 Python变量作用域 ...
- python中的各种作用域
声明:本文中大部分内容均在参考网址中,本人进行精简后,略加修改并加上一点自己的理解. 一.python中作用域 1.局部作用域,在函数内部或lambda.类中的全局局部变量中,调用函数时才会创建.每次 ...
- Python中变量的作用域?(变量查找顺序)
函数作用域的LEGB顺序 1.什么是LEGB? L: local 函数内部作用域 E: enclosing 函数内部与内嵌函数之间 G: global 全局作用域 B: build-in 内置作用 p ...
- python中变量的作用域
变量的作用域 变量的作用域就是指变量的有效范围. 变量按照作用范围分为两类,分别是 全局变量 和 局部变量. 全局变量:在函数外部声明的变量就是全局变量 有效范围:全局变量在函数外部可以正常使用.全局 ...
- python中函数作用域_Python中的函数作用域
在python中,一个函数就是一个作用域 name = 'xiaoyafei' def change_name(): name = '肖亚飞' print('在change_name里的name:', ...
最新文章
- 北大智能学院成立!AI视觉泰斗朱松纯教授任院长
- CloudStack设计思想
- C语言树形打印二叉树
- HaProxy介绍,安装及配置
- Leaflet中使用Leaflet-echarts3插件实现航班航线动态模拟
- VTK:Shaders之ColorByNormal
- P7323-[WC2021]括号路径【并查集,启发式合并】
- border三角形阴影(不规则图形阴影)和多重边框的制作
- zblog php mip,zblog网站改造百度MIP的教程仅针对zblog轻奢主题
- spinningup 绘制曲线
- 0day影响 Chrome和 Safari,谷歌不修复
- jenkins教程_1 简介
- 文强+光裕+唐骏,告诉我们什么?
- 使用jmeter测试接口
- 数据库安全风险行为 目录 1. 数据库安全风险行为	2 1.1. Sql注入SQLi)攻击行为	2 1.2. . 过多的、不适当的和未使用的特权	2 1.3. 2. 权限滥用(数据库系统管理员和开
- 汉王考勤管理系统教程
- Python新手到熟练的百天之路
- word文档分节后 如何删除某一节的页码
- 请简述python数据分析流程_简单案例讲解Python数据分析的基本步骤
- Kaggle word2vec NLP 教程 第二部分:词向量
热门文章
- 超实用编程技术指南!为什么你还学不会一门编程语言?
- 对不起,我不接私活了
- HTML5 API详解(11):Cache 应用程序缓存,这下离线也可以玩了
- python cv2 轮廓的包络 面积_Python + Opencv2 实现轮廓提取,轮廓区域面积计算
- ROS----小乌龟之你追我赶
- 转录组+微生物组联合解密困扰50年的丛枝菌根共生“自我调节”中枢分子网络机制...
- Linux下那些查找命令
- 「兼容M1」Royal TSX for Mac 最强远程管理软件
- 第41课 蜗牛与葡萄树 《小学生C++趣味编程》
- c语言如何查看内置函数,C中函数内部的函数