随笔分类 -  面向对象

摘要:1、python的继承以及调用父类成员 python子类调用父类成员有2种方法,分别是普通方法和super方法 假设Base是基类 普通方法如下 super方法如下 在上面的简单场景下,两种方法的效果一致 2、钻石继承遇到的难题 如果我们还是用普通方法调用父类成员,代码如下 当我们实例化Leaf对象 阅读全文
posted @ 2019-07-12 21:24 Operater 阅读(787) 评论(0) 推荐(0) 编辑
摘要:Python的描述符是接触到Python核心编程中一个比较难以理解的内容,自己在学习的过程中也遇到过很多的疑惑,通过google和阅读源码,现将自己的理解和心得记录下来,也为正在为了该问题苦恼的朋友提供一个思考问题的参考,由于个人能力有限,文中如有笔误、逻辑错误甚至概念性错误,还请提出并指正。 2、 阅读全文
posted @ 2019-01-03 18:55 Operater 阅读(911) 评论(0) 推荐(0) 编辑
摘要:class A: def __init__(self): print("Enter A") print("Leave A") class B(A): def __init__(self): print("Enter B") super(B, self).__init__() print("Le... 阅读全文
posted @ 2018-12-22 12:31 Operater 阅读(250) 评论(0) 推荐(0) 编辑
摘要:在__all__里面写了谁,到时候就只能用谁,其他的用不了,from 模块 import *时就只能用__all__里的 阅读全文
posted @ 2018-12-12 00:02 Operater 阅读(241) 评论(0) 推荐(0) 编辑
摘要:用__new__实现单例模式 参考 http://funhacks.net/2017/01/17/singleton/ 阅读全文
posted @ 2018-12-05 00:24 Operater 阅读(156) 评论(0) 推荐(0) 编辑
摘要:1、编程思想: 面向过程 核心是过程二字,过程指的是解决问题的步骤,即先干什么后干什么 基于该思想编写程序就好比在设计一条流水线,是一种机械式的思维方式 优点:复杂的问题流程化,进而简单化 缺点:可扩展性差 面向对象 核心是对象二字,对象是特征(变量)与技能(函数)的结合体 基于该思想编写程序就好比 阅读全文
posted @ 2018-12-01 22:50 Operater 阅读(197) 评论(0) 推荐(0) 编辑
摘要:# __str__:在对象被打印时自动触发,然后将该绑定方法的返回值(必须是字符串类型)当做本次打印的结果 # class People: # def __init__(self,name,age): # self.name=name # self.age=age # # def __str__(self): # return... 阅读全文
posted @ 2018-12-01 22:30 Operater 阅读(124) 评论(0) 推荐(0) 编辑
摘要:# class Foo: # pass # # class Bar(Foo): # pass # # # obj=Bar() # # # print(isinstance(obj,Bar)) # # print(isinstance([],list)) # # print(issubclass(Bar,Foo)) # 反射:指的是通过字符串来操作属性 class Foo... 阅读全文
posted @ 2018-11-30 23:55 Operater 阅读(122) 评论(0) 推荐(0) 编辑
摘要:类中定义的函数有两大类(3小种)用途,一类是绑定方法,另外一类是非绑定方法1. 绑定方法:特点:绑定给谁就应该由谁来调用,谁来调用就会将谁当作第一个参数自动传入1.1 绑定给对象的:类中定义的函数默认就是绑定对象的1.2 绑定给类的:在类中定义的函数上加一个装饰器classmethod2. 非绑定方法特点: 既不与类绑定也不与对象绑定,意味着对象或者类都可以调用,但无论谁来调用都是一个普通函数,根... 阅读全文
posted @ 2018-11-30 23:50 Operater 阅读(168) 评论(0) 推荐(0) 编辑
摘要:成人的BMI数值:过轻:低于18.5正常:18.5-23.9过重:24-27肥胖:28-32非常肥胖, 高于32 体质指数(BMI)=体重(kg)÷身高^2(m) EX:70kg÷(1.75×1.75)=22.86 # property装饰器就是将一个函数属性伪装成一个数据属性 # class People: # def __init__(self,name,weight,heigh... 阅读全文
posted @ 2018-11-30 23:49 Operater 阅读(123) 评论(0) 推荐(0) 编辑
摘要:1 什么是封装 装就是将数据属性或者函数属性存放到一个名称空间里 封指的是隐藏,该隐藏是为了明确地区分内外,即该隐藏是对外不对内(在类外部无法直接访问隐藏的属性,而在类内部是可以访问)2 为何要封装 1. 封数据属性:??? 2. 封函数属性:???3 如何封装??? 在类内定义的属性前加__开头 # class People: # __country='C... 阅读全文
posted @ 2018-11-30 23:48 Operater 阅读(158) 评论(0) 推荐(0) 编辑
摘要:1 多态 多态指的是同一种事物的多种形态2 多态性: 可以在不用考虑对象具体类型的情况下而直接使用对象 优点: 归一化,简化对象的使用 # import abc # # class Animal(metaclass=abc.ABCMeta): # @abc.abstractmethod # def speak(self): # pa... 阅读全文
posted @ 2018-11-30 23:47 Operater 阅读(248) 评论(0) 推荐(0) 编辑
摘要:1、什么是组合 组合指的是一个对象拥有某一个属性,该属性的值是另外一个类的对象 obj=Foo() obj.attr1=Bar1() obj.attr2=Bar2() obj.attr3=Bar3()2、为何用组合 为了减少类与类之间代码冗余3、如何用 class OldboyPeople: school='Oldboy' def __ini... 阅读全文
posted @ 2018-11-30 23:46 Operater 阅读(440) 评论(0) 推荐(0) 编辑
摘要:在子类派生出的新方法中重用父类功能的方式二:只能在子类中用 python2:super(自己的类名,对象自己) python3:super() 调用super()会得到一个特殊的对象,该特殊的对象是专门用来引用父类中的属性的,完全参照mro列表 注意: 1、该方式与继承严格依赖于继承的mro列表 2 阅读全文
posted @ 2018-11-30 23:45 Operater 阅读(185) 评论(0) 推荐(0) 编辑
摘要:#coding:utf-8 # 多继承背景下属性查找的顺序:对象-》对象的类-》按照从左往右的顺序一个一个的分支找下去 # # #第四层 # class I: # # x='I' # pass # # #第三层 # # class E: # # x='E' # pass # # class F(I): # # x='F' # pass # #... 阅读全文
posted @ 2018-11-30 23:41 Operater 阅读(166) 评论(0) 推荐(0) 编辑
摘要:# 单继承背景下属性查找的顺序:对象-》对象的类-》父类-》。。。 # class Foo: # # x=333 # pass # # class Bar(Foo): # # x=222 # pass # # obj=Bar() # # obj.x=111 # print(obj.x) class Foo: def f1(self): ... 阅读全文
posted @ 2018-11-30 23:40 Operater 阅读(133) 评论(0) 推荐(0) 编辑
摘要:在子类派生出的新方法中重用父类功能的方式一: 指明道姓地访问某一个类的函数 注意: 1、该方式与继承是没有关系的 2、访问是某一个类的函数,没有自动传值的效果 阅读全文
posted @ 2018-11-30 23:37 Operater 阅读(183) 评论(0) 推荐(0) 编辑
摘要:继承解决的是类与类之间的代码冗余问题,一定是一个类是另外一个类的子类 继承关系的查找 总结对象之间的相似之处得到类,总结类与类之间的相似之处就得到了类们的父类 问题:如何在子类派生出的新方法中重用父类的功能 阅读全文
posted @ 2018-11-30 22:04 Operater 阅读(274) 评论(0) 推荐(0) 编辑
摘要:1、什么是继承 继承是一种新建类的方式,新建的类称之为子类,被继承的类称之为基类、父类、超类 继承描述的是一种‘遗传’的关系:子类可以重用父类的属性 在python中继承注意两点: 1、在python中支持一个子类同时继承多个父类 2、python中类分为两种: 新式类:但凡继承object的类,以 阅读全文
posted @ 2018-11-29 23:02 Operater 阅读(221) 评论(0) 推荐(0) 编辑
摘要:一、python中类也是对象 只要使用关键字class,python解释器在执行的时候就会创建一个对象 当程序再运行这段代码的时候,就会在内存中创建一个对象,名字就是objectCreator。这个对象(类)自身拥有创建对象(类实例)的能力,而这就是为什么它是一个类的原因。但是,它的本质仍然是一个对 阅读全文
posted @ 2018-06-14 18:56 Operater 阅读(258) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示