python 和java 的变量不一样。 java 可以理解成一个盒子,python 的变量的实质上是一个指针
可以理解 成 便利贴, 想贴到哪就贴到哪
a = [1, 2, 3]
b = a
print(a is b)
print(id(a))
print(id(b))

a, b ID一样,表示是同一对象

is ,== 区别
is 判断 id 是不是相等

a = [1, 2, 3, 4]
b = [1, 2, 3, 4]
print(a is b)
print(id(a))
print(id(b))
print(a == b)

a, b 值相等,但不是同一对象

特例
a = 1
b = 1
print(id(a))
print(id(b))

python 内部对小整数会指向同一对象

垃圾回收
python 垃圾回收算法采用引用计数器
计数器减到0时回收

Python 一个经典参数错误

def add(a, b):
a += b
return a
a = [1, 2]
b = [3, 4]
c = add(a, b)

if name == ‘main’:
a = [1, 2]
b = [3, 4]
c = add(a, b)
print©
print(a)
print(b)

a 也变成了 [1,2,3,4]

class Company:
def init(self, name, staffs=[]):
self.name = name
self.staffs = staffs

def add(self, staff_name):self.staffs.append(staff_name)def remove(self, staff_name):self.staffs.remove(staff_name)

if name == ‘main’:
com1 = Company(“com1”,[“zs”, “ls”])
com1.add(“ww”)
com1.remove(“zs”)
print(com1.staffs)

com2 = Company("com2")
com2.add("zl")
print(com2.staffs)print("*" * 30)com3 = Company("com3")
com3.add("qq")
print(com2.staffs)
print(com3.staffs)
print(com2.staffs is com3.staffs)

发现 com2.staffs,com3.staffs 都变成了 [‘zl’, ‘qq’]
原因有传list ,使用了默认的list
默认list list 本身是可变对象,共用了空的list
可以用 print(Company.init.defaults) 查看默认值

python 变量, 垃圾回收机制相关推荐

  1. a byte of python中文版_面试官问 Python 版 “垃圾回收”机制,我没答上来

    点击"开发者技术前线",选择"星标?" 13:21 在看|星标|留言,  真爱 选自<萌萌哒的柯基> 作者:heroyfhttps://www.he ...

  2. python中垃圾回收机制_python 垃圾回收机制

    首先我们要说是 以引用计数为主 标记清楚和分代回收为辅 接下来分以下几个方面解释 一 引用计数 每个对象内部都维护了一个值,该值记录这此对象被引用的次数,如果次数为0,则Python垃圾回收机制会自动 ...

  3. 【Python知识点梳理】10.Python的垃圾回收机制、代码规范及命令行参数

    Python的垃圾回收机制.代码规范及命令行参数 文章目录 1.Python的垃圾回收机制 2.Python的引用计数机制 3.Python中的循环数据结构及引用计数 4.Python中的GC模块 5 ...

  4. python垃圾回收机制原理_详解python的垃圾回收机制

    python的垃圾回收机制 一.引子 我们定义变量会申请内存空间来存放变量的值,而内存的容量是有限的,当一个变量值没有用了(简称垃圾)就应该将其占用的内存空间给回收掉,而变量名是访问到变量值的唯一方式 ...

  5. python的垃圾回收机制和析构函数__del__

    析构函数__del__定义:在类里定义,如果不定义,Python 会在后台提供默认析构函数. 析构函数__del__调用: A.使用del 显式的调用析构函数删除对象时:del对象名: class F ...

  6. 关于python的垃圾回收机制_Python的垃圾回收机制

    知识点的铺垫 对象和引用 python作为一门动态语言,一个简单的赋值语句也是很值得研究的,重要特点就是引用对象分离. a = 1 其中整数1是一个对象,而a是一个引用.利用赋值语句,引用a指向对象1 ...

  7. python中垃圾回收机制_Python中的变量和垃圾回收机制

    1.python中的变量 python 和 java 中的变量本质不一样. java 中声明变量时要指定变量的数据类型,int.str或某一类,之后虚拟机就会在内存中申请一块空间,空间的大小跟类型相关 ...

  8. Python的垃圾回收机制(引用计数+标记清除+分代回收)

    一.写在前面: 我们都知道Python一种面向对象的脚本语言,对象是Python中非常重要的一个概念.在Python中数字是对象,字符串是对象,任何事物都是对象,而它们的核心就是一个结构体--PyOb ...

  9. python内存的回收机制_简单介绍python的垃圾回收机制

    这篇文章主要介绍了python垃圾回收机制的相关资料,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 什么是垃圾回收机制? 首先,咱先来解释名词,垃圾回收是不是就是将没用的,废弃的东西回 ...

最新文章

  1. win10家庭版远程桌面连接出现身份验证错误
  2. vim常用替换表达式
  3. abap 创建出口历程_SAP abap 需找出口(BADI)的几种方法
  4. socket bufferedinputstream通信读取不到服务器返回的响应_TCP角度看socket通信过程,socket怎么表示三次握手,四次挥手...
  5. bzoj1088 [SCOI2005]扫雷Mine
  6. .NET 6 运行在Win7 SP1上出错
  7. java基础面试题(二)附答案
  8. 520,张一鸣宣布卸任字节跳动CEO!
  9. 计算机硬盘显示offline,LSI芯片Raid卡一块硬盘显示红色Offline(或者Failed)
  10. 武昌理工学院计算机巧业怎样,最潮高校宿管员巧念育人经 做学生们的“知心大姐”...
  11. 魔兽争霸dota内外网p2p联机玩游戏-不需要对战平台的联机
  12. python简单画玫瑰_用python画一朵玫瑰给你
  13. 沁恒CH341是一个USB总线的转接芯片
  14. 按步搭建简单IoT微服务(2)
  15. c语言中位数怎么求,C计算中位数参考
  16. matlab竖向正负柱状图,echarts竖向正负柱状图【如何用EXCEL做正负柱状图?请高手指点,谢谢】...
  17. vs2010 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
  18. IBM 成立 | 历史上的今天
  19. 云边端协同EasyCVR平台语音对讲配置的注意事项汇总
  20. 调音台docker教程_Docker Hello World

热门文章

  1. 新西兰或对中国代购奶粉行为作出限制措施
  2. 全志a13开发板——建立一个可以启动linux的SD卡
  3. Java数据类型之引用数据类型
  4. CustomValidator 控件
  5. 快手卖画怎么引流?快手直播卖货效果怎么样?
  6. 微信已过期或被清理的图片怎么恢复?4种方法!
  7. 表白html苹果电脑,苹果也玩彩蛋 用程序员的方式告白果粉
  8. HAL库TIM定时器
  9. PPT-trick整理(长期更新)
  10. c++中结构体和类的区别