前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python类的继承

python类的继承

作者头像
py3study
发布2020-01-14 12:22:52
9140
发布2020-01-14 12:22:52
举报
文章被收录于专栏:python3

面向对象的三大特性:封装、继承、多态 继承时面向对象编程的优点之一 类的继承与方法重载: 继承的特点: 减少代码和灵活定制新类 子类具有父类的属性和方法 子类不能继承父类的私有属性/方法 子类可以添加新的方法 子类可以修改父类的方法 继承的语法: 定义类时,在类名后:(继承的类名) 多重继承时,括号中放多个父类名,逗号分开 例子:class MyClass(BaseClass) python中没有继承的类,默认继承Object 类名.base 类名.bases 查看父类 代码:

代码语言:javascript
复制
# -*- coding=utf-8 -*-
class A:
    pass

print(A.__base__)

class B(A):
    pass

print(B.__base__)

class C:
    pass

class D(A,C):
    pass

print(D.__bases__)

super() 父类 super.方法名() 调用父类方法 子类调用方法时,会先在子类找,子类不存在时,会向父类找

代码语言:javascript
复制
# -*- coding=utf-8 -*-
class Washer:
    company = "Le xi"
    def __init__(self,water=10,scour=2):
        self._water = water
        self.scour = scour
        self.year = 2010
        pass

    @staticmethod
    def spins_ml(spins):
        print("company:",Washer.company)
        return spins * 0.4

    @classmethod
    def get_washer(cls,water,scour):
        return cls(water,Washer.spins_ml(scour))

    @property
    def water(self):
        return self._water

    @water.setter
    def water(self,water):
        if 0 <= water <= 500:
            self._water = water
            pass
        else:
            print("输入的值有误!")
            pass
        pass

    @property
    def total_year(self):
        return 2015-self.year

    def set_water(self,water):
        self.water = water
        pass

    def set_scour(self,scour):
        self.scour = scour
        pass

    def add_water(self):
        print('Add water:',self.water)
        pass

    def add_scour(self):
        print('Add scour:',self.scour)
        pass

    def start_wash(self):
        self.add_water()
        self.add_scour()
        print('Start wash...')
        pass
    pass

# if __name__ == '__main__':
#     print(Washer.spins_ml(8))
#     w = Washer()
#     print(w.spins_ml(8))
#     w = Washer(200,Washer.spins_ml(9))
#     w.start_wash()
#     w = Washer.get_washer(200, 10)
#     w.start_wash()
#     pass

class WasherDry(Washer):
    def dry(self):
        print('Dry clothes...')
        pass
    #方法重载
#     def start_wash(self):
#         self.add_scour()
#         self.add_water()
#         print("Start wash...")
#         pass
#     pass
    #调用父类方法
    def start_wash(self):
        print("....")
        super().start_wash()
        print("......")

if __name__ == '__main__':
    w = WasherDry()
    w.start_wash()
    print(w.scour,w.company)
    w.dry()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档