python的多继承

2018-06-18 02:03:08来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

  昨天被室友拖着去吃鸡去了,所以没有学习,该反省。只有今天多学习一点,将昨天的补回来。

  今天学习了python的多继承。

  觉得多继承还是有点难,今天在学习多继承的实收,一不小心将一个父类的构造函数的名称写错了,然后就出现了bug,找了好久,才发现是上面写错了,结果编辑器报错的地方与我真正出错的地方差了好远,所以大家写代码要仔细一点,找bug真的是恼火。

  好了,言归正传,开始正文。

 

 

class  People(object):   # 这是第一个父类
name=""
age=0
__weight=0 # 私有属性

def __init__(self,name,age,weight):
self.name=name
self.age=age
self.__weight=weight

def speak(self):
print(self.name,self.age,self.__weight)


# 在继承类的时候 类名后面的括号里写的就是你需要继承的类,可以看出来这是一个单继承
class Student(People): #这里定义了一个子类,而且继承了上面的people类
grade=""
def __init__(self,name,age,weight,grade):
People.__init__(self,name,age,weight)
self.grade=grade

def print_sutdent(self):
print(self.grade)

# 在这儿再创建一个类

class Speaker(object):
topic=""
name=""
def __init__(self,name,topic):
self.name=name
self.topic=topic

def print_speak(self):
print(self.name,self.topic)

# 这儿就是今天的主角了,类的多继承,可以看到,类名之后的括号里,就是写的你需要继承的父类的名称。
# 注意,父类的书序很重要,比如说你需要调用一个子类没有而父类却有的方法,那么python解释器将会在父类之中从左到右寻找你调用的方法。

class Sample(Student,Speaker):
a=""
# 这里很重要,这里是继承父类的构造函数的写法
def __init__(self,name,age,weight,grade,topic,a):
Student.__init__(self,name,age,weight,grade)
Speaker.__init__(self,name,topic)
self.a=a

# 这里叫做方法重写:意思就是如果父类中存在这个方法,但是功能不能满足子类的需求,那么你就可以在子类中重新定义一个函数名称和父类的相同,
#然后这个实例在调用该方法的时候,就会调用子类中的你重写的方法。
def print_speak(self):
print(self.name,self.age,self.grade,self.topic,self.a)

# 使用子类生成实例

test=Sample("tim",25,80,99,"python",10)

# 调用子类中重写的方法
test.print_speak()


标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:基于hi-nginx的web开发(python篇)——动态路由和请求方法

下一篇:Python实现制度转换(货币,温度,长度)