首页 > 编程语言 >Python的继承

Python的继承

时间:2024-08-27 23:24:49浏览次数:10  
标签:Python 子类 self 继承 print 父类 class def

# 1.继承
# 就是让类和类之间转变为父子关系,子类默认继承父类的属性和方法
# 1.1 语法
# class 类名(父类名):
#   代码块
# 1.2 单继承
# class Person:
#     def eat(self):
#         print("吃")
#     def drink(self):
#         print('喝')
#     def play(self):
#         print('玩')
#     def enjoy(self):
#         print('乐')
# class Man(Person):  #Person类的子类
#     pass   #占位符,代码里面类不写任何东西,会自动跳过,不会报错
# man=Man()
# man.play()
# class Woman(Person):
#     pass
# woman=Woman()
# woman.play()
# 总结:子类可以继承父类的属性和方法,就算子类没有,也可以使用父类的

# 1.3 继承的传递
# A/B/C C(子类)继承B(父类),B(子类)继承A(父类),C类具有A/B类的属性和方法
# class Grandfather:
#     def money(self):
#         print('钱')
#     def cash(self):
#         print('现金')
#     def fund(self):
#         print('基金')
#     def coppercoin(self):
#         print('硬币')
# class Father(Grandfather):
#     def salary(self):
#         print('薪水')
#     def wage(self):
#         print('工资')
#     def pay(self):
#         print('支付')
# class Son(Father):
#     def earning(self):
#         print('收入')
# son=Son()
# son.fund()
# son.money()
# 继承的传递性子类拥有父类和父类的父类的属性和方法

# 1.4 方法的重写 子类和父类的方法名称相同,优先调用自己的方法
# 1.4.1 覆盖父类方法
# class Clothes:
#     def dress(self):
#         print('所有衣服')
# class Tshirt(Clothes):
#     def dress(self):
#         print('短袖')
# t=Tshirt()
# t.dress()
# 1.4.2 对父类方法进行拓展,继承父类的方法,子类也可以增加自己的功能
# 1.父类名.方法名(self)
# 2.super().方法名() ---推荐使用
# super在python里面是一个特殊的类:super() 使用super类创建出来的对象,可以调用父类的方法
# 3.super(子类名,self).方法名()
# class Clothes:
#     def dress(self):
#         print('所有衣服')
#     def pants(self):
#         print('内裤')
#     def trousers(self):
#         print('裤子')
# class Tshirt(Clothes):
#     def dress(self):
#         # Clothes.dress(self)  第一种方法
#         super().dress()   #第二种方法
#         super().trousers() #可以调用父类中的其他方法
#         super(Tshirt,self).dress()
#         print('短袖')
# t=Tshirt()
# t.dress()


# 2.新式类写法
# class A:   经典类:不由任意内置类型派生出的类
#     pass
class Animal:
    def jump(self):
        print('跳')
class Pig(Animal):
    name='yzh'     #属性
    def fight(self):
        print('打架')
    # pass 不是派生类
# 派生类 子类有不同于父类的属性和方法,就是派生类,否则则不是派生类
# 2.2 class A():
# 2.3 class A(object) 新式类:继承了object类或者该类的子类都是新式类,---推荐使用
# object ---对象,python为所有对象提供的基类(顶级父类),提供了一些内置属性和方法,可以使用dir()查看
print(dir(object))
# python3中如果一个没有继承任何类,则默认继承object类,因此python3都是新式类

# 3.多继承
# 子类可以拥有多个父类,并且拥有所有父类的属性和方法
class Father1(object):
    def money(self):
        print('马斯克的资产')
class Father2(object):
    def house(self):
        print('深圳湾1号')
class Father3(object):
    def car(self):
        print('奥迪A8霍希版')
class Son(Father2,Father3,Father1):
    pass
son=Son()
son.car()
son.house()
son.money()
# 有多个父类的属性和方法,如果多个父类的方法名称相同,会调用近的方法,就近原则
# 3.3 方法的搜索顺序(了解)
# python中的内置属性__mro__可以查看方法的搜索顺序 从左往右的顺序
print(Son.__mro__)
# 如果在当前类中找到了方法,会直接执行,不在搜索
# 如果找到最后一个类还没有找到,会报错

标签:Python,子类,self,继承,print,父类,class,def
From: https://blog.csdn.net/2401_84648157/article/details/141614960

相关文章

  • 【python】基础之生成器
    1.什么是生成器?是Python中一种特殊的迭代器,它是一个能按需生成值的轻量级对象。与一次性创建所有元素的数据结构(如列表或元组)不同,生成器在每次迭代时只生成下一个值,从而节省内存并支持无限序列或其他大量数据流的操作。#iter中简单是4行代码,可以代替MyRangeIterator一样的......
  • python读取串口 数据
    读取10s数据,然后关闭串口#读取10s串口数据后关闭这个串口importtimedefread_serial(port,baudrate,duration):try:#初始化串口ser=serial.Serial(port,baudrate)print(f"Openedserialport{port}at{baudrate}baud.")......
  • 【python】基础之迭代器
    1.总览2.迭代器介绍2.1:迭代器是一个实现了迭代协议的对象,它可以让我们遍历一个容器中的所有元素,而不需要知道容器的内部结构,迭代器可以用于遍历列表,元祖,字典,集合等容器类型;2.2:迭代器的工作原理是通过实现两个方法:iter()和__next__()方法,iter()方法返回迭代器对象本身,next......
  • 使用 Python 和 Selenium 解决 Cloudflare 验证码
     在网络自动化测试或网页数据抓取的过程中,Cloudflare验证码是许多开发者遇到的棘手问题。这一验证码设计的初衷是为了保护网站免受恶意攻击,但它也给合法的自动化操作带来了不小的挑战。那么,使用Python和Selenium,是否有办法有效应对并解决Cloudflare验证码的问题?有哪些技巧和方......
  • 目录PyCharm Community Edition、python3.11、pythonProject之间的关系
    PyCharmCommunityEdition类型:PyCharmCommunityEdition是由JetBrains公司提供的免费、开源的集成开发环境(IDE)。用途:它专门为Python开发设计,提供了代码编辑、运行、调试、测试等功能。特点:包括智能代码补全、代码分析、图形化界面设计、版本控制集成等高级功能。Pyt......
  • 基于python+flask框架的摄影论坛(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,摄影作为一种艺术形式与记录生活的方式,在大众中普及度日益提升。摄影爱好者们渴望一个能够交流心得、分享作品、......
  • 基于python+flask框架的校园疫情防控管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景近年来,全球范围内疫情的反复出现对教育行业带来了前所未有的挑战,尤其是校园作为人群密集场所,其疫情防控工作显得尤为重要。随着科技的进步......
  • python + logging 记录日志
    日志生成的位置为当前文件目录下的tmp文件夹,是以固定大小(10M)的方式去滚动日志,如想设置为按时间滚动日志,需要设置为TimedRotatingFileHandler(filename=_create_log_path(),when="midnight",interval=1,backupCount=7)去替换RotatingFileHandler,每天晚上12点生成一个新的日志......
  • python入门笔记 1.环境配置
    1.python编译器下载https://www.python.org/downloads/windows/下载3.10版本的python,因为3.13还在prerelease,3.12和3.11在bugfix,担心有稳定性问题。负责代码的执行,并且有python的一些基础包,比如os。可以进行一些基础功能,就好像游戏的本体。有游戏的基本玩法,后续可以通过买dlc......
  • python 多张图片合并
    有一堆雷达图,想放到一张图上展示#!usr/bin/envpython#-*-coding:utf-8-*-"""@author:Suyue@file:piccon.py@time:2024/08/27@desc:"""importosimportPIL.ImageasImageIMAGES_PATH=r'F:/picture//'#图片集地址IMAGES_FORM......