Python3核心编程深度剖析

在Python3的编程世界里,有许多核心知识点值得我们深入探究。今天,就让我们一起走进Python3核心编程的奇妙世界,了解那些重要的概念和特性。

一、Python3核心编程知识体系概览

1.1 基础概念

  • ==is:用于对象比较的重要操作符
  • 深拷贝、浅拷贝:数据复制的不同方式
  • with的使用:简化资源管理的语法

2.2 高级特性

  • 迭代器:实现可迭代对象的关键
  • 生成器:高效生成数据的利器
  • 闭包:封装局部状态的函数
  • 装饰器:增强函数功能的魔法

3.3 面向对象编程

  • 再议 封装、继承、多态:面向对象编程的三大支柱
  • 再议静态方法、类方法:不同类型的方法使用场景
  • 多继承以及MRO顺序:复杂继承关系的处理
  • 内建属性:Python对象自带的属性
  • 魔法属性:具有特殊意义的属性
  • 内建函数:Python内置的实用函数
  • Python动态绑定:灵活的对象属性绑定
  • __slots__:限制对象属性的定义
  • property属性:将方法伪装成属性
  • property属性2:进一步深入property的应用
  • 私有化:保护对象属性的访问

4.4 元编程

  • 元类:创建类的类
  • 实现ORM:对象关系映射的实现

5.5 描述符相关

  • __getattr____getattribute__:属性访问的特殊方法
  • 描述符:控制属性访问的机制
  • 描述符调用机制:描述符的工作原理
  • 描述符注意点:使用描述符的注意事项
  • 描述符应用:描述符的实际应用场景
  • 总结:对描述符相关知识的总结

6.6 垃圾回收

  • 垃圾回收(一)
  • 垃圾回收(二)
  • 垃圾回收(三)

7.7 日志模块

  • logging日志模块:记录程序运行信息的工具

二、深入理解==is

1. 目的

在编程过程中,我们常常需要判断两个对象是否相同。很多时候,我们会首先想到使用==,但在某些情况下,这样的判断并不严谨,容易引发问题。这就是我们需要学习is的原因。

2. == 判断的数值

2.1 ==理解

在学习if判断时,我们经常会使用“如果 谁等于谁,那么……”这样的逻辑,这里的“等于”就是用==来实现的。==能够判断对比的两个对象的值是否相同,但不能保证它们是同一个对象。

举个例子,张三有个iPhone x手机,你也有一个iPhone x手机,此时用==判断,结果为True,表示你们两个人的手机在大小、型号、重量、外观等方面是相同的,但它们并不是同一个手机。

2.2 测试

下面我们通过代码来测试一下:

a = [11, 22, 33]
b = [11, 22, 33]

print(id(a))
print(id(b))

print(a == b)

测试效果如下:
image-20190304215108311

3. is 判断是否同一个

既然==已经能判断数据是否相同,那is肯定有不同的功能。is的作用是判断两个对象是否是同一个对象。

例如,一对兄弟,他们的亲生父母都是相同的,用==判断能得到True,但is能更好地体现出他们是同一个家庭的成员。

我们通过代码来验证:

a = [11, 22, 33]
b = a

print(id(a))
print(id(b))

print(a is b)

image-20190304220445556

4. 总结

  • is 是比较两个引用是否指向了同一个对象(引用比较)
  • == 是比较两个对象的值是否相等(值比较)

如果你想深入学习更多Python3核心编程的知识,可以点击这里。掌握这些核心知识,将让你在Python编程的道路上更进一步!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值