摘要:
反射、内置方法 一. 反射 python是动态语言,而反射(reflection)机制被视为动态语言的关键。 反射机制指的是在程序的运行状态中 对于任意一个类,都可以知道这个类的所有属性和方法; 对于任意一个对象,都能够调用他的任意方法和属性。 这种动态获取程序信息以及动态调用对象的功能称为反射机制 阅读全文
摘要:
多态性和鸭子类型 多态与多态性 多态指的是一类事物有多种形态,比如动物有多种形态:猫、狗、猪 class Animal: #同一类事物:动物 def talk(self): passclass Cat(Animal): #动物形态之一:猫 def talk(self): print('喵喵喵')cl 阅读全文
摘要:
绑定方法与非绑定方法 一. 绑定方法与非绑定方法 类中定义的函数分为两大类:绑定方法和非绑定方法 其中绑定方法又分为绑定到对象的对象方法和绑定到类的类方法。 在类中正常定义的函数默认是绑定到对象的,而为某个函数加上装饰器@classmethod后,该函数就绑定到了类。 类方法通常用来在__ init 阅读全文
摘要:
封装 一. 引入 面向对象编程有三大特征:封装、继承、多态,其中最重要的一个特征就是封装。封装指的就是把数据与功能都整合到一起。除此之外,针对封装到对象或者类中的属性,我们还可以严格控制对它们的访问,分两步实现:隐藏与开放接口 二. 隐藏属性 Python的Class机制采用双下划线开头的方式将属性 阅读全文
摘要:
继承与派生 一. 继承介绍 继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,新建的类可称为子类或派生类,父类又可称为基类或超类 class ParentClass1: #定义父类 passclass ParentClass2: #定义父类 passclass SubC 阅读全文
摘要:
软件开发的目录规范 为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要软件的目录规范并无硬性标准,只要清晰可读即可,假设你的软件名为foo,笔者推荐目录结构如下: Foo/|-- core/| |-- core.py||-- api/| |-- api.py 阅读全文
摘要:
面向对象编程 一. 对象的概念 ”面向对象“的核心是“对象”二字,而对象的精髓在于“整合“,什么意思? 所有的程序都是由“数据”与“功能”组成,因而编写程序的本质就是定义出一系列的数据,然后定义出一系列的功能来对数据进行操作。在学习“对象”之前,程序中的数据与功能分离开的,如下 #数据:name,a 阅读全文
摘要:
常用模块 一. time与datatime模块 1.1 time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型 阅读全文
摘要:
模块 一. 模块介绍 在Python中,一个py文件就是一个模块,文件名为xxx.py模块名则是xxx,导入模块可以引用模块中已经写好的功能。将程序模块化会使得程序的组织结构清晰,维护起来更加方便。比起直接开发一个完整的程序,单独开发一个小的模块也会更加简单,并且程序中的模块与电脑中的零部件稍微不同 阅读全文
摘要:
包 一. 包的介绍 随着模块数目的增多,把所有模块不加区分地放到一起也是极不合理的,于是Python为我们提供了一种把模块组织到一起的方法,即创建一个包。包就是一个含有init.py文件的文件夹,文件夹内可以组织子模块或子包,例如 pool/ #顶级包├── __init__.py ├── futu 阅读全文