举例讲解Python面向对象编程中类的继承

yipeiwu_com7年前Python基础

python创建一个类很简单只需要定义它就可以了.

class Cat:
  pass

就像这样就可以了,通过创建子类我们可以继承他的父类(超类)的方法。这里重新写一下cat

class Cat:
  name = 'cat'


class A(Cat):
  pass

print A.name  # cat

经典类

我们也可以这样,让A多继承。

class Cat:
  name = 'cat'


class Dog:
  name = 'dog'


class A(Cat, Dog):
  pass

print A.name  # cat

如果Cat类没有name属性呢?

class Cat:
  pass

  ...
print A.name  # dog

A就会在其他的父类中找name这个属性。如果继承的两个父类都是继承自Animal类而Animal类也有name属性呢?

class Animal:
  name = 'animal'


class Cat(Animal):
  pass


class Dog(Animal):
  name = 'dog'


class A(Cat, Dog):
  pass

print A.name  # animal

这样A就不会在Dog类中找而是会在Animal上找到name, 这种类叫经典类。类的解析顺序是一种从左到右深度优先的搜索。也就是A–> Cat–> Animal –> Dog。

新式类

python还有一种创建类的方式,就是使用新式类(建议使用), 都继承自object这个基类, 新式类的搜索规则是从左到右逐级查询。也就是A–> Cat –> Dog –> Animal。

class Cat(object):
  pass

相关文章

Python复制文件操作实例详解

本文实例讲述了Python复制文件操作用法。分享给大家供大家参考,具体如下: 这里用python实现了一个小型的自动发版本的工具。这个“自动发版本”有点虚, 只是简单地把debug 目录...

Python对接支付宝支付自实现功能

代码如下所示: # -*- coding: utf-8 -*- import base64 import json import urllib.parse from datetime...

python调用外部程序的实操步骤

python调用外部程序的实操步骤

在python的使用中,有时也不得不调用一下外部程序,那么如何调用外部程序: 首先,我们要启动python软件,使用的是python2.7的版本,具体如图: 在外部调用中主要要用到一...

用python处理MS Word的实例讲解

用python处理MS Word的实例讲解

使用python工具读写MS Word文件(docx与doc文件),主要利用了python-docx包。本文给出一些常用的操作,并完成一个样例,帮助大家快速入手。 安装 pyhton处理...

浅谈python之新式类

前言 本文中代码运行的python版本一律采取2.7.13 科普: 经典类:classic class 新式类:new-style class python2.2 之前并...