内置方法

一、isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls) 检查obj是否是类cls的对象 class Foo: pass obj = Foo() print(isinstance(obj, Foo))  # 输出:True s = “alex” print(isinst……

反射

反射:通过字符串映射到对象的属性,也适用于类。 意思就是将字符串映射为属性来使用,比如通过input输入一个字符串,把输入的字符串当作属性来使用,需要通过反射来实现。 反射主要用到: hasattr:判断属性是否存在 getattr:获取属性值 setattr:修改属性值 delattr:删除属性值   来看下面的例子: cla……

绑定方法与非绑定方法

定义 在类内部定义的函数,分为两大类: 一、绑定方法:绑定给谁就应该由谁来调用,谁来调用就会把调用者当作第一个参数自动传入     1. 绑定到对象的方法:在类内定义的没有被任何装饰器修饰的     2. 绑定到类的方法:在类内定义的被装饰器classmethod修饰的方法 二、非绑定方法:没有自动传值这么一说了,就类中定义的一个普通工具……

oracle sql developer 修改界面语言为英文

oracle sql developer 默认打开是中文,需要将它改为英文,做如下操作: 1.进入到安装目录下,然后编辑配置文件,如我的   D:\Program Files\sqldeveloper\sqldeveloper\bin\sqldeveloper.conf 2.在文件末尾添加下面两行代码: AddVMOption -Duse……

封装

封装不是单纯意义上的隐藏。   一、封装中如何隐藏属性: 属性前加 “__” 就行了,这种方式只在类定义阶段发生, 如: __x = 1  class A: __x = 1 # 隐藏属性 __x def __foo(self): # 隐藏属性 __foo print(“from foo”) def bar(self): self……

多态与多态性、鸭子类型

一、多态 多态:同一种事物的多种形态。 动物有多种形态:人、猪、狗 # 多态:同一类实数的多种形态 import abc class Animal(metaclass=abc.ABCMeta): # 同一类事物:动物 @abc.abstractmethod def talk(self): pass class People(Animal)……

抽象类与归一化

讲这个之前我们先来了解一下Java的接口,算了,我知道  不说了。   抽象类:就是提取几个类中相同的部分到一个统一的类中,其他类再继承这个类(就是java中接口的概念),抽象类中定义统一的方法,但不具体实现,由继承他的子类进行具体实现。抽象类只能被继承,不能被实例化。 归一化:进行了抽象之后,在抽象类中定义的方法要求子类里必须……

组合

软件重用的重要方式除了继承之外还有另外一种方式,即:组合 组合指的是,在一个类中以另一个类的对象作为数据属性,称为类的组合。   组合与继承都是有效利用已有类的资源的重要方式。但是二者的概念和使用场景皆不同: 1.继承的方式 通过继承建立了派生类与基类之间的关系,他是一种“是”的关系,比如 白马是马,人是动物。 当类之间有很多相……

继承的实现原理

了解实现原理之前,我们先来了解一下 经典类 和 新式类。   一、经典类 和 新式类 经典类和新式类的区分是在Python2中才有的,在Python3 中所有的类都是新式类。 在Python2中: 经典类:没有继承object的类,以及它的子类都称为经典类。 class Foo: # 没有继承object,是经典类 pass c……