随笔分类 -  面向对象

摘要:一、引言 学完了面向对象的基础知识后,可还是不知该如何下手,凡是都得有个章法。 此刻有经验的人可能会想到瀑布模型、螺旋模型、迭代开发、敏捷、RUP等一堆软件工程相关的软件开发流程,但对于大部分人来说这些流程仅仅只是项目管理上的流程。 本节我们就来了解下,作为一名程序员基于面向对象开发程序的开发流程: 阅读全文
posted @ 2020-07-20 11:28 zoling7 阅读(98) 评论(0) 推荐(0)
摘要:一、容易犯的错误 1,面向对象的程序设计看起来高大上,所以在编程时就应该保证通篇 class,这样写出的程序一定是好的程序(面向对象只适合那些可扩展性要求比较高的场景) 2,很多人喜欢说面向对象三大特性(这是从哪传出来的,封装,多态,继承?漏洞太多太多,好吧暂且称为三大特性),那么我在基于面向对象编 阅读全文
posted @ 2020-07-20 11:25 zoling7 阅读(99) 评论(0) 推荐(0)
摘要:一、引言 1,元类属于python面向对象编程的深层魔法,接下来,我们就一起来深度了解python元类的来龙去脉。 2,补充:exec 的用法: # 储备知识 exec # 参数1:字符串形式的命令 # 参数2:全局作用域(字典形式),如果不指定,默认就使用 globals() # 参数3:局部作用 阅读全文
posted @ 2020-07-20 11:12 zoling7 阅读(141) 评论(0) 推荐(0)
摘要:一、isinstance(obj,cls)和 issubclass(sub,super) 1,isinstance(obj,cls) 检查 obj 是否是类 cls 的对象 class Foo(object): pass obj = Foo() print(isinstance(obj, Foo)) 阅读全文
posted @ 2020-07-20 08:28 zoling7 阅读(218) 评论(0) 推荐(0)
摘要:一、类中定义的函数分成两大类 1,绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): 1)绑定到类的方法:用 classmethod 装饰器装饰的方法,为类量身定制。 类.boud_method(),自动将类当作第一个参数传入(其实对象也可调用,但仍将类当作第一个参数传入) 2)绑定到 阅读全文
posted @ 2020-07-19 15:25 zoling7 阅读(235) 评论(0) 推荐(0)
摘要:一、引言 从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小猪一起装进麻袋,然后把麻袋封上口子。照这种逻辑看,封装 = ‘隐藏’,这种理解是相当片面的。 二、先看如何隐藏 在 python 中用双下划线开头的方式将属性隐藏起来(设置成私有的) # 其实这仅仅是一种变形操作且仅仅只在类 阅读全文
posted @ 2020-07-19 11:58 zoling7 阅读(276) 评论(0) 推荐(0)
摘要:一、多态 多态指的是一类事物有多种形态 动物有多种形态:人,狗,猪 import abc class Animal(metaclass=abc.ABCMeta): # 同一类事物:动物 @abc.abstractmethod def talk(self): # 抽象方法不用实现 pass class 阅读全文
posted @ 2020-07-19 10:38 zoling7 阅读(232) 评论(0) 推荐(0)
摘要:一、初识继承 1,什么是继承? 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python 支持多继承),父类又可称为基类或超类,新建的类称为派生类或子类。 子类会“遗传”父类的属性,从而解决代码重用问题(比如练习中 Garen 与 Riven 类有很多冗余的代码) python 中类的 阅读全文
posted @ 2020-07-19 10:09 zoling7 阅读(206) 评论(0) 推荐(0)
摘要:一、编程范式 1,编程是程序员用特定的 语法+数据结构+算法 组成的代码来告诉计算机如何执行任务的过程 。 2,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务有很多种不同的方式, 对这些不同的编程方式的特点进行归纳总结得出来的编程方式类别,即为编程范式 阅读全文
posted @ 2020-07-10 21:29 zoling7 阅读(377) 评论(0) 推荐(0)