Python学习-类的继承

 1 继承:
 2 #python2 经典类是按深度优先来继承的,新式类是按广度优先来继承的
 3 #python3 经典类和新式类都是按广度优先来继承的
 4
 5
 6
 7 #经典类:class People:
 8 class People(object):  #这个是新式类,多继承的时候有了改变
 9
10     def __init__(self, name, age):
11         self.name =name
12         self.age = age
13
14
15     def eat(self):
16         print("%s is eating" % self.name)
17
18
19     def talk(self):
20         print("%s is talking" % self.name)
21
22     def sleep(self):
23         print("%s is sleeping" % self.name)
24
25 #多继承的示范
26 class Relation(object):
27     def make_friends(self, obj):
28         print("%s is making friends with %s" % (self.name, obj.name))
29         self.friends.append(obj)  #要用obj,这样才和另一个实例产生联系
30
31 #子类继承
32 class Man(People, Relation):  #小括号中 一定要有父类名称,如People
33
34     def __init__(self, name, age, sex="man"):
35 #        People().__init__(self,name, age) 第一种的初始化方法
36         super().__init__(name, age)  # superclass,super函数直接继承所有,super(Man, self)的省略
37         self.sex = sex
38         self.friends = []
39
40     def working_hard(self):
41         print("earning money.")
42
43     def sleep(self):   #重构了父类的方法
44         People.sleep(self)
45         print("Man %s is sleeping" % self.name)
46
47
48 class Woman(People, Relation):
49
50     def __init__(self,name, age, sex = "woman"):
51         super().__init__(name, age)
52         self.sex = sex
53         self.friends = []
54
55     def get_birth(self):
56         print("%s is giving birth to a baby." % self.name)
57
58
59 p1 = People("Adam", 26)
60 p1.eat()
61 print("%s is %s years old." % (p1.name, p1.age))
62 p1.sleep()
63
64 m1 = Man("Alex", 28)
65 m1.eat()
66 m1.working_hard()
67 m1.sleep()
68 m1.make_friends(p1)
69 print(m1.friends[0].name)
70
71 w1 = Woman("Shell", 27)
72 w1.get_birth()
73 w1.sleep()

原文地址:https://www.cnblogs.com/Ian-learning/p/8325432.html

时间: 01-20

Python学习-类的继承的相关文章

python学习之类的继承

面向对象中一个重要的特性就是继承,继承的好处就是提高代码的重用率,减少不必要的代码.继承是父类与子类的关系,当子类继承了父类后,就具有了父类的所有变量和方法.在python中定义继承的语法是:class 派生类名(基类名).在使用python的继承时需要注意一下几点: (1)当父类定义了__init__()初始化方法时,子类不会自动调用,而需要我们显示调用,如果我们要扩展父类的变量,可以在__init__()添加参数. (2)在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量

Python 笔记 : 类和继承

# -*- coding=  utf-8 -*- # 文件编码定义的语法规则是: coding[:=]/s*([-/w.]+) # 未指定编码将默认为 : ASCII # 同时要注意物理文件的编码也要符合本语言指定的编码 # 更多可参考: http://python.org/dev/peps/pep-0263/ class CBase: '''''资源相关类'''     # 通过CBase.__doc__ 或者类实例.__doc__ 可以输出此说明 counter = 0;    # 这是属于

【python】-- 类的继承(新式类/经典类)、多态

继承 之前我们说到了类的公有属性和类的私有属性,其实就是类的封装,现在准备随笔的 是继承,是面向对象的第二大特性. 面向对象编程 (OOP) 语言的一个主要功能就是"继承".继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 通过继承创建的新类称为"子类"或"派生类",被继承的类称为"基类"."父类"或"超类",继承的过程,就是从一般到

转:python学习——类中为什么要定义__init__()方法

学习Python的类,一直不太理解为什么一定要定义init()方法,现在简要谈一下自己的理解吧. 1.不用init()方法定义类定义一个矩形的类,目的是求周长和面积. 1 class Rectangle(): 2 def getPeri(self,a,b): 3 return (a + b)*2 4 def getArea(self,a,b): 5 return a*b 6 7 rect = Rectangle() 8 print(rect.getPeri(3,4)) 9 print(rect.

Python 之 类的继承

类的继承代码 #Author Kang class Person(object): #父类 def __init__(self,name,sex): #类的初始化 self.Name = name self.Sex = sex def walking(self): #类的方法 print("%s is walking"%self.Name) class BlackPerson(Person): #子类 def __init__(self,name,sex,language): #初始化

Python 【类的继承】

一.类的继承 #类的继承 class Animal(object): #Animal类继承object def __init__(self,color): self.color = color def eat(self): print("动物在吃!") def run(self): print("动物在跑") class Cat(Animal): #Cat继承Aninal 继承[属性和方法] pass cat = Cat("白色") print(

Python学习 Day 8 继承 多态 Type isinstance dir __slots__

继承和多态 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Superclass). >>> class Animal(object):#名为Animal的class defrun(self): print'Animal is running...' >>> class Dog(Animal):#从Animal类继承 pass

Python:类的继承实例

class School(object):----def init(self,name,addr): #构造函数,用来初始化--------self.name=name--------self.addr=addr--------self.staffs=[]--------self.students=[] ----def enroll(self,stu_obj): #注册学生--------print("为学员 %s 办理注册手续" %stu_obj.name)---- ----self

Python3.x基础学习-类--多继承、多态

多继承 一个子类继承多个父类,就是多继承,并且拥有所有父类的属性和方法例如:孩子会继承父亲和母亲的特征 如果子类和父类中有相同的方法,就会调用子类中的方法如果不同的父类中存在有相同的方法名称,子类对象调用的时候会调用哪个父类中的方法呢?python 会根据MRO(method resolution order) 方法解析顺序列表进行查找. class Dog: def eat(self): print("吃骨头") class God: def eat(self): print(&qu