少说话多写代码之Python学习044——类06(多继承)

栏目: Python · 发布时间: 7年前

内容简介:关于继承最麻烦的就是多继承,而Python是支持多继承的。也就是说一个子类可能有两个以上的父类。比如,如下代码,子类继承了两个类,父类的方法在子类中都可以调用。CsharpProgramer继承了Programer和Person类,调用如下,

关于继承最麻烦的就是多继承,而 Python 是支持多继承的。也就是说一个子类可能有两个以上的父类。

比如,如下代码,子类继承了两个类,父类的方法在子类中都可以调用。

class Programer:
    language='二进制'
    def work(self):
        print('程序员用%s 写代码' %(self.language))
    def workDate(self):
        print('程序员上班时间:二十四小时')
class Person:
    food='泡面'
    def eat(self):
        print('吃 %s' %(self.food))
    def workDate(self):
        print('普通人上班时间:八小时')

class CsharpProgramer(Programer,Person):
    pass #记住前面学的了吗,这句什么也不做

CsharpProgramer继承了Programer和Person类,调用如下,

p=CsharpProgramer()
p.language='C#'
p.food='夜宵'
p.work()
p.eat()
p.workDate()

输出

程序员用C# 写代码
吃 夜宵
程序员上班时间:二十四小时

如果被继承的两个父类有一个重名且参数都一样的方法,还涉及一个顺序的问题,也就是在实现继承的时候哪个父类在前,前面的类的方法重写后面类的相同方法。比如,

class Worker(Person,Programer):
    pass #记住前面学的了吗,这句什么也不做

p2=Worker()
p2.workDate()

输出

普通人上班时间:八小时

因为Person在前。workDate方法调用的是Person类的。

虽然Python中支持多继承,在在实际使用中,一个类最好不要多继承,遵循单继承的原则会避免很多麻烦和无法预知的bug。

工程文件下载: https://download.csdn.net/download/yysyangyangyangshan/10791129


以上所述就是小编给大家介绍的《少说话多写代码之Python学习044——类06(多继承)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Little MLer

The Little MLer

Matthias Felleisen、Daniel P. Friedman、Duane Bibby、Robin Milner / The MIT Press / 1998-2-19 / USD 34.00

The book, written in the style of The Little Schemer, introduces instructors, students, and practicioners to type-directed functional programming. It covers basic types, quickly moves into datatypes, ......一起来看看 《The Little MLer》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试