摘要:
在Python中,类(Class)是创建对象(实例,Instance)的模板。类定义了对象的属性和行为,而实例是类的具体对象,具有独立的属性值。
文档和代码获取:
本文档主要介绍如何使用 Python 进行 面向对象编程 ,需要读者对 Python 语法和 单片机 开发具有基本了解。相比其他讲解 Python 面向对象编程的博客或书籍而言,本文档更加详细、侧重于嵌入式 上位机 应用,以上位机和 下位机 的常见 串口 数据收发、数据处理、动态图绘制等为应用实例,同时使用 Sourcetrail代码软件对代码进行可视化阅读便于读者理解。
正文
类Class
在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段,由于 Python 是动态语言,类是动态生成的,它和传统意义上的类的意义不同。在 Python 中定义一个新类(Class)等于创建了一个新类型(Type)的对象(Object),解释器中一切对象均存储在 PyObject 结构中。
class Base(): pass b = Base()print(id(Base), type(Base), Base)print(id(b), type(b), b)
通过class关键字我们可以定义一个新的类型(New User-defined Type)。示例中,我们定义了一个自己的类型Base,b是它的实例(Instance),它的类型是Base。Class和Type均是指类型(Type),Class通常用于普通用户使用class自定义的类型。Type通常指Python的解释器内置的类型。
实例Instance
实例(Instance)和对象(Object)也是不同的语境产生的不同说法。“1是一个int类型的实例”和“1是int类型的对象”是等价的。如果把上句中的“类型”替换为“类”,就成了我们熟悉的面向对象编程中的说法:“1是一个int类的实例” 和“1是int类的对象”。 当创建某个对象或强调某个对象的类型时,常常说这个对象是某某类的实例,当强调对象自身时,我们只说某某对象。
当一个对象是某个类的实例时,它也是这个类的基类的实例。内置方法 isinstance(obj, class) 用来判断一个对象是否是某个类的实例。
class Base(): pass b = Base()print(isinstance(b, Base))print(isinstance(b, object))