VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > 数据分析 >
  • Python简明教程:面向对象【新手必学】

类命名空间

对于我们定义好的一个类来说,会有一个属于类的命名空间用来存储类中定义的属性。而类中定义的属性又可以分为静态属性和动态属性。

静态属性就是定义在类中的变量,而动态属性就是定义在类中的方法。这里关于称呼方法为属性的说法之前也已经有过说明。

类的静态属性是所有对象共享的,而类的动态属性(静态方法)也是绑定到所有对象上的。

对象命名空间

根据定义的类实例化得到的一个对象之后,会有一个对象的名称空间来存放对象的属性。在我们使用对象名来调用属性的时候,会首先在该名称空间内找,找不到会到类名称空间内找,还找不到会去父类中找,如果还找不到的话就会报异常。

接口类

"三流企业做产品、二流企业做品牌、一流企业定标准" 相信这句话你或多或少的听说过。

我们这里的接口类,也是用来定义标准的。例如支付,支付宝,微信支付,ApplePay 等内部实现肯定不会完全相同。如果关于这个支付,我们定义一个接口,也就是一个标准来规范功能的调用,也就能够使用统一的格式来调用不同类型的支付。

关于定于接口,我们需要借助abc模块来完成相应的功能。

 
interface

上面的代码也是看起来想接口而已,其实子类不去实现其中的抽象方法也完全没有问题,并没有达到我们想要的效果。事实上,python 中也没有提供接口相关的关键字 interface ,现在有一些能够实现接口功能的第三方模块也只是对接口概念的一个模仿。

抽象类

抽象类是一个特殊的类,它不能被实例化,但是可以被继承。上面提到的接口,接口之中必须全部是抽象方法,我们退一步讲,如果一个类中只有部分的方式是抽象的,也有一些方法已经具有完整的实现,那个这种类就是抽象类。抽象类其实是一个介于类和接口之间的概念,同时具有类和接口的部分属性,对于归一化也有一定帮助。从另一个角度来看,类是由对象抽象得到的,而抽象类就是由类抽象而来。

钻石继承

经典类采用深度优先的原则,而新式类则采取了广度优先的原则。

 
钻石继承

多态性

就一句,记住,python不支持多态性。

Then,that’s all,thank you。


相关教程