
OOP
i0208
石匠
展开
-
with statement 上下文管理
介绍with语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等特点上下文管理器提供了 __enter__()方法和__exit__()方法,在with语句中,如果用as指定了一个目标,会将__enter__()方法的返回值赋予这个目标。 运行中如果发生了异常,那么将会把异常的类型,值和...原创 2020-03-10 09:44:21 · 194 阅读 · 0 评论 -
单例模式
实例化类就会产生对象的名称空间,占内存,所以有时候为了节省内存开销,就要用到单例单例模式: 调用n次类只产生一个对象class Demo: passobj1 = Demo()obj2 = Demo()print(id(obj1)) # 1594519955888print(id(obj2)) # 1594519955832# 类只要加括号就会生成一个新的对象,无论...原创 2020-01-27 10:25:26 · 168 阅读 · 0 评论 -
元类
基于python的宗旨:一切皆对象。而对象都是由类实例化得到的认识元类真正的目的是自定义元类控制类的创建class OldboyTeacher(object): school = 'oldboy' def __init__(self,name): self.name = name def run(self): print('%s i...原创 2020-01-27 10:25:20 · 146 阅读 · 0 评论 -
反射与内置方法
反射在Python中,反射指的是通过字符串来操作对象的属性,涉及到四个内置函数的使用(Python中一切皆对象,类和对象都可以用下述四个方法) hasattr(对象名, 属性名) : 判断某个对象是否存在某个属性 getattr(对象名, 属性名, 默认值) : 从对象中取出属性,第三个值是默认值,当属性不存在时返回默认值 setattr(对象名, 属性名, 属性值)...原创 2020-01-22 18:56:27 · 243 阅读 · 0 评论 -
绑定方法与非绑定发
类中定义的函数分为两大类:绑定方法和非绑定方法其中绑定方法又分为绑定到对象的对象方法和绑定到类的类方法。在类中正常定义的函数默认是绑定到对象的,而为某个函数加上装饰器@classmethod后,该函数就绑定到了类,为某个函数加上@staticmethod后,改函数为非绑定方法classmethod类方法通常用来在__init__的基础上提供额外的初始化实例的方式# 配置文件s...原创 2020-01-22 18:56:20 · 191 阅读 · 0 评论 -
多态
多态与多态性多态指的是一类事物有多种形态,比如动物有多种形态:猫、狗、猪class Animal(): #同一类事物:动物 passclass Cat(Animal): #动物的形态之一:猫 def talk(self): print('喵喵喵')class Dog(Animal): #动物的形态之二:狗 def talk(self...原创 2020-01-22 18:56:13 · 179 阅读 · 0 评论 -
继承
介绍继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类又可称为基类或超类,新建的类称为派生类或子类。子类会“”遗传”父类的属性,从而解决代码重用问题python中类的继承分为:单继承和多继承class ParentClass1: #定义父类 passclass ParentClass2: #定义父类 passclass...原创 2020-01-22 18:56:08 · 194 阅读 · 0 评论 -
封装 property
面向对象编程有三大特性:封装、继承、多态,其中最重要的一个特性就是封装。封装指的就是把数据与功能都整合到一起,听起来是不是很熟悉,没错,我们之前所说的”整合“二字其实就是封装的通俗说法。除此之外,针对封装到对象或者类中的属性,我们还可以严格控制对它们的访问,分两步实现:隐藏与开放接口 不想外界或obj访问就可以采用封装 私有的属性、方法,不会被子类继承,也不能被访问 只是...原创 2020-01-22 18:55:59 · 222 阅读 · 0 评论 -
接口类
接口 接口是一组功能的集合,但是接口中仅包含功能的名字,不包含具体的实现代码 接口本质就是一套协议标准,遵循这个标准的对象就能被调用 接口的目的就是为了提高扩展性 # 关于支付的接口class Payment: def pay(self, money): raise NotImplemented # 当Payment的子类...原创 2020-01-22 18:55:49 · 921 阅读 · 0 评论 -
面向对象
程序设计面向过程设计核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么......面向过程的设计就好比精心设计好一条流水线,是一种机械式的思维方式。 优点 复杂度的问题流程化,进而简单化(一个复杂的问题,分成一个个小的步骤去实现,实现小的步骤将会非常简单) 缺点 一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个...原创 2020-01-22 18:55:41 · 284 阅读 · 0 评论