python中的class Solution(object):的含义与类继承与类、对象概念的详解-程序员宅基地

技术标签: python  python学习  

目录

前言

1.什么是类

2.类的继承

总结



前言

我们会在python学习中遇到了如class Solution(object):这种形如class className(object):这种类定义,与平常使用的class  className:有着差别,class className(object):实际上是类继承。


1.什么是类

要弄明白类继承这个概念,首先就要明白什么是类。类是描述一个对象的规则,与之相对的,对象是按照这个类生成的个体。

举个例子说,有一本规则手册写着学生会学习,会提问。而小明,小美按照这个记录着学生特征规则手册被生成,他们都会读书,提问。那么这本规则手册就是学生类,小明小美是这个学生类的对象。

#学生类 描述了什么是学生
class  Student:

    #__init__为该类对象被初始化时调用的
    #如该类初始化学生小美为 xiaoMei=Student("XiaoMei")
    #括号中字符串"XiaoMei"就是__init__函数中的输入name参数
    #self指的是该类对象自身,如上面对象xiaoMei中,self指的就是小美
    def __init__(self,name):
        self.name=name

    def Learn(self):
        print(self.name+"在学习!\n")
    def Question(self):
        print(self.name+"在提问!\n")

#根据类的描述生成两个学生(对象)
xiaoMing=Student("XiaoMing")
xiaoMei=Student("XiaoMei")

#小明学习
xiaoMing.Learn()
#小妹提问
xiaoMei.Question()

该代码的输出如下:

XiaoMing在学习!

XiaoMei在提问!

2.类的继承

在弄明白什么是类之后,我们发现学生中有擅长运动的学生(SportStudent),他们会运动。还有会唱歌的学生 (SingStudent),他们会唱歌。但是这两种学生有都是学生,都会学习和提问。

程序员发现一个个定义他们的类实在太累了,因为要在每个类定义中重复劳动加上学习和提问,而且这样定义没法体现运动学生和唱歌学生都是学生这件事。于是,程序员发明了类继承,让这两种学生类成为学生类的子类(学生类是这两种类的父类),这样他们都可以使用学习,提问的方法。

继承父类的代码如下,也就是标题中

class 子类名(父类名):
    #具体内容

具体实现代码如下

#学生类 描述了什么是学生
class  Student:

    #__init__为该类对象被初始化时调用的
    #如该类初始化学生小美为 xiaoMei=Student("XiaoMei")
    #括号中字符串"XiaoMei"就是__init__函数中的输入name参数
    #self指的是该类对象自身,如上面对象xiaoMei中,self指的就是小美
    def __init__(self,name):
        self.name=name

    def Learn(self):
        print(self.name+"在学习!")
    def Question(self):
        print(self.name+"在提问!")

#运动学生和唱歌学生类继承了Student类并且定义各自的独特方法
#运动学生定义了DoSport()
#唱歌学生定义了Sing()
class SportStudent(Student):
    def DoSports(self):
        print(self.name+"在运动!")
class SingStudent(Student):
    def Sing(self):
        print(self.name+"在唱歌!")


#初始化运动学生小明,唱歌学生小美
#注意到两种类都继承了父类学生的__init__方法
xiaoMing=SportStudent("XiaoMing")
xiaoMei=SingStudent("XiaoMei")

#这两种子类的对象都会学生类的方法,除特殊的父类私有方法外
#如都会学习
xiaoMing.Learn()
xiaoMei.Learn()

#但是这两种类的对象有各自特长(独特方法)
xiaoMing.DoSports()
xiaoMei.Sing()

以上代码的输出为:

XiaoMing在学习!
XiaoMei在学习!
XiaoMing在运动!
XiaoMei在唱歌!


总结

以上文章总结了什么是类和对象,class className(object):是创造继承object父类的名为className的子类的语句。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_56738500/article/details/126571730

智能推荐

PHP-生成缩略图和添加水印图-学习笔记-程序员宅基地

文章浏览阅读82次。1.开始 在网站上传图片过程,经常用到缩略图功能。这里我自己写了一个图片处理的Image类,能生成缩略图,并且可以添加水印图。2.如何生成缩略图 生成缩略图,关键的是如何计算缩放比率。 这里,我根据图片等比缩放,宽高的几种常见变化,得出一个算缩放比率算法是,使用新图(即缩略图)的宽高,分别除以原图的宽高,看哪个值大,就取它作为缩放比率:...

dyld: Library not loaded: @rpath/libswiftCore.dylib ... Reason: image not found 解决-程序员宅基地

文章浏览阅读2.7k次。在室友Xcode继承一些framework时,爆出了如下错误:dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /private/var/containers/Bundle/Application/1761A6FE-9D6B-45F7-9F9F-922C94BF54A3/demo.app/Framewor..._library not loaded: @rpath/libswiftcore.dylib

linux gvim 快捷键tab,Linux中Vim的常用命令及快捷键-程序员宅基地

文章浏览阅读356次。光标控制命令h或^h向左移一个字符j或^j或^n向下移一行k或^p向上移一行l或空格向右移一个字符G移到文件的最后一行nG移到文件的第n行w..._gvim itab

umi4 项目使用umi-plugin-keep-alive缓存页面(react-activation)-程序员宅基地

文章浏览阅读1k次,点赞12次,收藏10次。按 name 卸载缓存状态下的 节点,name 可选类型为 String 或 RegExp,注意,仅卸载命中 的第一层内容,不会卸载 中嵌套的、未命中的。按 name 刷新缓存状态下的 节点,name 可选类型为 String 或 RegExp,注意,仅刷新命中 的第一层内容,不会刷新 中嵌套的、未命中的。按 name 卸载缓存状态下的 节点,name 可选类型为 String 或 RegExp,将卸载命中 的所有内容,包括 中嵌套的所有。true: 卸载时缓存。获取所有缓存中的节点。_umi-plugin-keep-alive

memory compiler使用流程-程序员宅基地

文章浏览阅读3k次,点赞2次,收藏25次。用了几天的memory compiler,搞清楚了它的使用流程。因为这个软件是不开源的,而且手册又很长,没有快速阅读指南,所以就花了挺多时间学习手册细节,想把其中比较主要的流程记录下来,供大家学习参考。它是一个用来综合一些IP核的软件,它里面各种各样的memory compiler,可以根据自己的选择选中一个,设置好参数之后就能生成想要的参数的memory。 因为每个memory compiler可能工艺不一样,端口数不一样,所以里面有手册告诉你这些细节的。(手册很多,每个手册几百页上下)1、首先就是要安装_memory compiler

Android 读取csv格式数据文件-程序员宅基地

文章浏览阅读5.6k次,点赞5次,收藏16次。前言什么是csv文件呢?百度百科上说 CSV是逗号分隔值文件格式,也有说是电子表格的,既然是电子表格,那么就可以用Excel打开,那为什么要在Android中来读取这个.csv格式的文件呢?因为现在主流数据格式是采用的JSON,但是另一种就是.csv格式的数据,这种数据通常由数据库直接提供,进行读取。下面来看看简单的使用吧正文首先还是先来创建一个项目,名为ReadCSV准备.csv格式的文件,点击和风APILocationList下载ZIP,保存到本地,然后解压,这个时候在你的项目文件中新建_android 读取csv

随便推点

Hive与HBase之间的区别和联系_hive hbase-程序员宅基地

文章浏览阅读2.7w次,点赞36次,收藏161次。首先要知道Hive和HBase两者的区别,我们必须要知道两者的作用和在大数据中扮演的角色概念Hive1.Hive是hadoop数据仓库管理工具,严格来说,不是数据库,本身是不存储数据和处理数据的,其依赖于HDFS存储数据,依赖于MapReducer进行数据处理。2.Hive的优点是学习成本低,可以通过类SQL语句(HSQL)快速实现简单的MR任务,不必开发专门的MR程序。3.由于Hive是依赖于MapReducer处理数据的,因此有很高的延迟性,不适用于实时数据处理(数据查询,数据插_hive hbase

【故障诊断】BP神经网络电机数据特征提取与故障诊断【含Matlab源码 2569期】_故障特征量为无编码比值的bp神经网络-程序员宅基地

文章浏览阅读402次。BP神经网络电机数据特征提取与故障诊断完整的代码,方可运行;可提供运行操作视频!适合小白!_故障特征量为无编码比值的bp神经网络

BIOS、Legacy BIOS和UEFI BIOS:你需要知道的一切-程序员宅基地

文章浏览阅读1.1k次。BIOS 是计算机历史上的一个重要组成部分。这个术语最早是在 20 世纪 70 年代作为 Gary Kildall 开发的 CP/M(微型计算机控制程序)操作系统的一部分使用的。但 BIOS 至今仍在使用。然而,成功的技术现在越来越多地用于现代计算机。Legacy BIOS 和 UEFI BIOSBIOS 的含义是什么?该术语是 Basic Input/Output System(基本输入/输出系统)的首字母缩写,它描述的是作为非易失性存储器储存在计算机主板上的固件。_legacy bios

GitLab集成gitlab-runner_gitlab-runner 16.1.2-程序员宅基地

文章浏览阅读2k次。​GitLab Runner是一个开源项目,用于运行您的作业并将结果发送回GitLab。它与GitLab CI结合使用,GitLab CI是GitLab随附的用于协调作业的开源持续集成服务。​。_gitlab-runner 16.1.2

缓存数据库的意义、作用与种类详解-程序员宅基地

文章浏览阅读449次,点赞7次,收藏7次。Redis、Memcached等常见的缓存数据库,以及它们各自的特点和优势,使得开发人员可以根据应用场景选择最适合的解决方案。通过合理地配置和使用缓存数据库,可以有效地改善应用程序的性能,降低数据库负载,为用户提供更流畅的体验。缓存数据库允许应用程序在需要数据时,首先从缓存中查询数据,如果数据存在,则可以避免直接访问主数据库,从而显著提高数据访问速度。主数据库通常面临大量读写请求,而缓存数据库可以分担部分读请求,减轻主数据库的负载,提高其稳定性和可靠性。缓存数据库可以作为主数据库的备份,以防止数据丢失。