随笔分类 - 面向对象
摘要:常用的内置方法就两个 1.__str_ 改变对象的字符串显示 class Foo: def __init__(self,name): self.name = name def __repr__(self): return 'obj in str' #这里只能是return # def __str__
阅读全文
摘要:hasattr、getattr比较重要 反射:可以用字符串的方式去访问对象的属性,调用对象的方法(但是不能去访问方法),python中一切皆对象,都可以使用反射。 反射有四种方法: hasattr:hasattr(object,name)判断一个对象是否有name属性或者name方法。有就返回Tru
阅读全文
摘要:isinstance(obj,cls):检查obj是不是cls的对象(传两个参数,一个是对象,一个是类) issubclass(sub,super):检查sub是不是super的子类(传两个参数,一个是子类,一个是父类)
阅读全文
摘要:类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属性交互(也就是可以使用类属性) 静态方法:让类里的方法直接被类调用,就像正常调用函数一样 类方法和静态方法的相同点:都可以直接被类调用,不需要实例化 类方法和静态方法的不同点: 类方法必须有一个cls参数表示这个类,可以使用类属性 静态
阅读全文
摘要:描述 super() 函数是用于调用父类(超类)的一个方法。 super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。 MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。
阅读全文
摘要:什么是封装呢?(封装不是单纯意义的隐藏,其实它还是可以查看的) 就是把一些不想让别人看的给隐藏起来了 封装数据:目的是保护隐私 功能封装:目的是隔离复杂度 如果用了私有的,在类的外部,无法直接使用变形的属性,但是在类的内部可以直接使用 1.用我们常用的__init__方法里的self取值 class
阅读全文
摘要:多态指的是一类事物有多种形态(比如:老师.下课铃响了(),学生.下课铃响了(),老师执行的是下班操作,学生执行的是放学操作,虽然二者消息一样,但是执行的效果不同) 例如:动物有多种形态:人,狗,猪 from abc import ABCMeta,abstractmethod class Animal
阅读全文
摘要:继承 一、组合 组合:组合指的是,在一个类中以另外一个类的对象(也就是实例)作为数据属性,称为类的组合 也就是说:一个类的属性是另一个类的对象,就是组合 例子: 圆环是由两个圆组成的,圆环的面积就是外圆的面积减去内圆的面积。圆环的周长就是内圆的周长加上外圆的周长,这个时候,我们首先设计一个圆形类,计
阅读全文
摘要:一、面向过程:面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。 优点:极大地降低了写成学的复杂度,只需要顺着执行的步骤,堆叠代码即可 缺点:一套流水线或者流程就是用来解决一个问题,如果修改代码就都得改变 二
阅读全文