Python入门基础教程:继承、封装、多态 (非常详细)!

四个python接口常用封装函数(附源码) 前言 又到每日分享Python小技巧的时光了,今天给大家分享的是Python接口常用封装函数。相信对于封装,大家都不陌生吧,今天就 用四个小案例来给大家展示,废话不多说,直接上代码。 1.封装上传图片的函数 Python学习交流Q群:906715085#### .def upload_image(pathName, pathRoute, pathType, keyName=None): ''' :param pathName: 图片名称 :param pathRoute: 图 阅读详情

前言

这篇文章介绍 面向对象的三大特征——封装,继承,多态。
在这里插入图片描述

对于编程初学者来说,学习python应该是比较好入手的,文末会给大家介绍下python的一些特点,供需要学习编程语言的伙伴一个简单的参考。

我们知道python是一种面向对象的语言,面向对象的三大特征就是 封装,继承,多态。

封装

封装的目的

1:封装数据:保护隐私
2:封装方法:隔离复杂度(只保留部分接口对外使用)

封装的方式

1:公有属性和方法

公有属性和方法可以被类的外部访问和使用,不需要添加任何特殊符号。

在这里插入图片描述

2:私有属性和方法

以双下划线开头

封装属性: ​​__attr​​
封装方法:​​__func​​

在Python中,可以使用_和__来定义属性的访问级别。

以_开头的属性被视为受保护的属性,即它们不应该在类外部被直接访问。但是,它们可以在类的子类和内部方法中被访问。

以__开头的属性被视为私有属性,即它们不应该在类的外部被访问。但是,它们也可以在类的内部方法中被访问。

这里要提一下,对于python中受保护的属性,python是不会对其做任何处理的,比如我们看下面这个例子:

在这里插入图片描述

但是按照python中的规则来讲,我们不能在类外部访问类内受保护的属性或方法。

还是这个例子,我们如果在类外访问私有属性,会发生什么呢?

在这里插入图片描述

我们看到,对于私有属性,如果我们要在类外进行访问的话,会抛出 AttributeError 的错误。

3:属性装饰器和方法装饰器

属性装饰器是一种特殊的函数,它可以被用来修改属性的访问方式。在Python中,我们可以使用@property 和 @属性名.setter装饰器来定义属性的访问器和修改器。

@property装饰器用于定义属性的访问器,它会将属性定义为一个只读属性。当外部代码试图修改这个属性时,会触发一个AttributeError异常。

@属性名.setter装饰器用于定义属性的修改器,它可以让外部代码修改这个属性的值。当外部代码试图读取这个属性时,会触发一个AttributeError异常。

方法装饰器

方法装饰器是用来装饰类的方法的,它的作用是在不改变原方法定义的情况下,为方法添加一些额外的功能,比如权限检查、缓存等。
常见的方法装饰器有静态装饰器 @staticmethod;类方法装饰器 @classmethod

在这里插入图片描述

下面为大家详细介绍下私有属性和方法的封装方式,python中的装饰器会另起一篇文章介绍。

封装的实现

封装属性
#封装age属性
class Student:
    def __init__(self,name,age):
        self.name=name
        self.__age=age  #不希望age在类外部被使用
    # 使age可以在类内部被调用
    def show(self):
        print('我的名字:',self.name,';我的年龄:',self.__age)
stu=Student('tom',10)
stu.show()
#我的名字: tom ;我的年龄: 10

# 在类外调用name  和 age
print('我的名字:',stu.name)
#我的名字: tom

print('我的年龄:',stu.age)  #出现报错AttributeError: 'Student' object has no attribute 'age'

那应该如何调用这个封装的属性age呢,这里我们可以引入一个dir()查看实例对象可使用的方法属性:

print('实例对象stu可以使用的方法属性有:',dir(stu))   #包含  _Student__age
print('我的年龄是:',stu._Student__age)

在这里插入图片描述

封装方法

和封装属性类似,在类内部需要封装的方法前面加上双下划线 “__”

在这里插入图片描述

同样的,如果我们要调用封装后的方法,应该如何做:

class Student:
    def __init__(self,name,age):
        self.name=name
        self.__age=age  #不希望age在类外部被使用
    # 使age可以在类内部被调用
    def __show(self):
        print('我的名字:',self.name,';我的年龄:',self.__age)
stu=Student('tom',10)
stu._Student__show()

在这里插入图片描述

由此可见:
Python 的封装并不是真正意义上的外部无法调用,与java ,PHP等语言不同,Python若调用封装的属性或方法,需要在方法和属性前加_类名。

那么既然python中的属性和方法被封装后依然可以被调用,那么封装的意义又何在呢?

封装的目的是隐藏类的实现细节,只暴露必要的接口给外部使用。如果一个属性或方法被公开为可访问的,那么它将变得容易受到攻击和滥用。例如,如果一个类的__init__()方法可以接受任意数量的参数,那么任何人都可以构造恶意对象并调用该方法。
通过将属性或方法定义为私有,我们可以确保只有类内部的对象才能访问它们。这有助于保护类的实现细节,防止不必要的干扰和错误。此外,封装还有助于提高代码的可维护性和可重用性,因为它可以将类的实现细节隐藏起来,使代码更加清晰和易于理解。

父类与子类的封装

子类的封装属性以及方法不会覆盖父类的封装属性或方法

# 子类封装的方法或属性不会覆盖父类的方法或属性
class A:
    __name = 'A'   # 变形为_A__name
    def get_x(self):
        print('父类A:',self.__name)

class A1(A):       # A1 继承了 A 的方法和属性
    __name='我是父类A的子类A1'  #变形为_A1__name
    def __say(self):
        print('这是子类A1的实例方法')
# A1的实例对象
obj = A1()
# 调用父类A的实例方法
obj.get_x()   #父类: A

小结

通过以上的例子我们得出:

类的封装不是真正意义上的“私有化”,而是一个语法上的变形
类的封装属性或方式,其实在定义阶段就已经进行了语法上的变形
类的调用阶段,再进行封装语法已经没有任何用处了

继承

继承的含义

python中的继承机制经常用于创建和现有类功能类似的新类,又或是新类只需要在现有类基础上添加一些成员(属性和方法),但又不想直接将现有类代码复制给新类。也就是说,当我们需要进行类的重复使用时,就可以使用这种继承机制来实现。

继承的实现

Python 中,实现继承的类称为子类,被继承的类称为父类;

子类继承父类时,只需在定义子类时,将父类(可以是多个)放在子类之后的圆括号里即可:

class 类名(父类1, 父类2, ...):
    #类定义部分

python中如果类没有指定继承某个类,那么就默认继承的是object类,我们看这个例子:

# 编写Person类,以及继承Person类的两个子类Student和Teacher
class Person(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def info(self):
        print('姓名:',self.name,'年龄:',self.age)
# Student类
class Student(Person):
    def __init__(self,name,age,stu_no):
        super().__init__(name,age)
        self.stu_no=stu_no
# Teacher 类
class Teacher(Person):
    def  __init__(self,name,age,teach_year):
        super().__init__(name,age)
        self.teach_year=teach_year
# 创建学生对象和教师对象
stu1=Student('小明',17,1001)
teacher1=Teacher('张丽',30,6)   
stu1.info()
teacher1.info()
'''
姓名: 小明 年龄: 17
姓名: 张丽 年龄: 30
'''

这个例子的继承关系并不复杂,定义一个Person类,没有指定继承某个类默认继承object类(object 类是 Python 中所有类的父类,即要么是直接父类,要么是间接父类);然后定义Person类的两个子类:Student类和Teacher类,分别继承Person类。

在这里插入图片描述

方法重写

如果子类对继承自父类的某个属性或方法不满意,可以在子类中对其(方法体)进行重新编写;子类重写后的方法中可以通过super().xxx() 调用父类中被重写的方法:

class Person(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def info(self):
        print('名字:',self.name,'年龄:',self.age)
class Student(Person):
    def __init__(self,name,age,stu_no):
        super().__init__(name,age)
        self.stu_no=stu_no
    #方法重写
    def info(self):
        super().info()  #调用父类的info()
        print('学号是:',self.stu_no)
class Teacher(Person):
    def __init__(self,name,age,teach_year):
        super().__init__(name,age)
        self.teach_year=teach_year
     #方法重写
    def info(self):
        super().info()#调用父类的info()
        print('教龄是:',self.teach_year)
stu1=Student('小华',17,1001)
teacher1=Teacher('赵丽',40,10)
stu1.info()
'''
名字: 小华 年龄: 17
学号是: 1001
'''
print('\n---------------教职工-------------\n')
teacher1.info()
'''
名字: 赵丽 年龄: 40
教龄是: 10
'''

如果一个类是空类,但是继承了含有方法和属性的类,那么这个类也同样含有父类的方法和属性:

class People:
    def __init__(self,name):
        self.name =name
    def say(self):
        print("People类",self.name)

class Animal:
    def __init__(self):
        self.name = Animal
    def say(self):
        print("Animal类",self.name)
#People类是Person父类中最近的父类,因此People中的name属性和say()方法会遮蔽 Animal 类中的
class Person(People, Animal):
    pass

zhangsan=Person('张三')
zhangsan.say()   # People类 张三

可以看到,当 Person 同时继承 People 类和 Animal 类时,People 类在前,因此如果 People 和 Animal 拥有同名的类方法,实际调用的是 People 类中的;由此也可以看出,python支持多继承。

object类

前面我们提到:object类是所有类的父类 ,因此所有类都有object类的属性和方法,这里我们再了解一下有关此类的一些方法。

1:内置函数 dir()可以查看指定对象所有的属性

2:object有一个__str__()方法,用于返回一个对于对象的描述 , 对应于内置函数str()经常用于print()方法,帮我们查看对象的信息 所以我们经常会对__str__()进行重写。

内置函数dir()
在这里插入图片描述

str()方法

# 定义方法再输出实例对象
class Student():
    def __init__(self,name,age):
        self.name=name
        self.age=age
    # 进行方法重写
    def __str__(self):
        return '名字是{},年龄是{}'.format(self.name,self.age)  #格式化字符串
stu=Student('luky',18)
print(stu,type(stu)) #默认调用__str__()方法,返回的类型就是该方法的内容
# 名字是luky,年龄是18 <class '__main__.Student'>


多态

python是一种动态语言,其最明显的特征就是在使用变量时,无需为其指定具体的数据类型。这会导致一种情况,即同一变量可能会被先后赋值不同的类对象。

class Animal:
    def say(self):
        print("赋值的是Animal类的实例对象")
class Plant:
    def say(self):
        print("赋值的是Plant类的实例对象")
a = Animal()
a.say()
# 赋值的是Animal类的实例对象

a = Plant()
a.say()
# 赋值的是Plant类的实例对象


在这个例子中我们看到a 可以被先后赋值为Animal类和Plant类的对象,但这并不是多态。类的多态特性,还要满足以下 2 个前提条件:

1:继承:多态一定是发生在子类和父类之间;

2:重写:子类重写了父类的方法。

但python作为一种动态语言不需要关心该类的继承关系 ,只需要关心该类中是否定义了某些属性方法,我们对上面的例子再进行编写:

class Animal:
    def say(self):
        print("调用的是 Animal 类的say方法")
class Plant(Animal):
    def say(self):
        print("调用的是 Plant 类的say方法")
class People(Animal):
    def say(self):
        print("调用的是 People类的say方法")
a = Animal()
a.say()
# 调用的是 Animal 类的say方法

a = Plant()
a.say()
# 调用的是 Plant 类的say方法

a = People()
a.say()
# 调用的是 People类的say方法


可以看到,Plant类和People都继承Animal类,且各自都重写了父类的 say() 方法。从运行结果可以看出,同一变量 a 在执行同一个 say() 方法时,由于 a 实际表示不同的类的实例对象,因此 a.say() 调用的并不是同一个类中的 say() 方法,这就是多态。

我们也可以在类外定义一个函数,通过不同类的实例对象对这一函数的调用,动态的决定调用哪个对象的方法:

class Flower:
    def color(self):
        print('花是五颜六色的')
class Rose(Flower):
    def color(self):
        print('玫瑰是红色的')
class Moli(Flower):
    def color(self):
        print('茉莉是白的的')
class Plant:
    def color(self):
        print('花属于植物')
# 定义一个函数
def fun(obj):
    obj.color()
# 调用函数
fun(Flower())  #花是五颜六色的
fun(Rose())   #玫瑰是红色的
fun(Moli())   #茉莉是白的的
print('-----------无任何继承关系的植物类-------\n')
fun(Plant()) #花属于植物     虽然植物类和其他定义了的类无继承关系,但是在该类中定义了color实例方法,因此会在调用时执行该方法


由此:

多态可以简单理解为:具有多种形态 ,它指的是即便不知道一个变量所引用的对象到底是什么类型, 仍然可以通过这个变量调用方法; 在运行过程中根据变量所引用的对象的类型 , 动态的决定调用哪个对象中的方法。

关于python

Python是一种高级编程语言,被广泛应用于各种不同的领域,包括软件开发、数据科学、网络编程和人工智能等。Python有许多特性,包括易于学习、语法简单、动态类型、面向对象的设计、模块化编程、可移植性和广泛的第三方库支持。

对于初学者

对于编程初学者来说,python的可读性较强,主要有以下几个方面:

1:python使用缩进来代表一个代码块,这样也会使代码层次更加鲜明,方便查阅;
2:python的语法较为简单,很多关键字见名知意

同时python拥有强大的第三方库支持,我们可以直接调用这些库,极大提高了我们的开发效率。

用到的工具

最常用的python编辑器就是pycharm

在这里插入图片描述

大家可以自行去网上查找安装教程,这里我把我在安装过程中出现的一个路径问题提一下,希望可以提供些帮助:
如果我们在安装pycharm的过程中显示不出运行结果,那基本上就是python的解释器文件路径没有放到pycharm 编辑器中,解决方式如下:

首先找到python的解释器路径:
可以使用Windows命令行输入where python
在这里插入图片描述

也可以直接在资源管理器上查找python.exe:

在这里插入图片描述

然后将python.exe的路径复制下来,打开pycharm:

在这里插入图片描述

最后将路径添加到pycharm的Base interpreter中,重启pycharm即可:

在这里插入图片描述

如何去学

python虽然入门比较简单,但是和其他的编程语言一样,只有实践才能出真知。本文的讲解比较晦涩,我们可以通过在网上找一些视频资源看(比如B站上的python教程,大家择优选择),并且在看的同时一定一定要自己动手敲出来,无论学习什么语言都是需要自己亲自动手操作的,只有在操作时不断发现bug,然后利用身边的资源去解决bug,出现bug时我们可以将报错信息直接粘到浏览器,由于每个人的报错原因都不尽相同,因此我们要多尝试,多思考。再者,我们可以将我们的程序中报错的代码块直接放到GitHub上,去查询是否有相似的报错解决方式,又或者我们去询问chatgpt,是否有解决方法等等。方正就是——只要思想不滑坡,方法总比困难多!

另外就是多刷题,比如可以去牛客网找题刷,尽量尝试先思考,然后在编辑器上根据自己的思路去作答,如果运行失败,一定要自己亲手调试分析下,这个过程很重要,也是举一反三的关键。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

点击领取 100%免费!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方优快云官方认证二维码或者点击链接免费领取【保证100%免费】

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/711c5966aa7348dc9340894eea54e99f.png#pic_center在这里插入图片描述

【Python】封装、继承和多态 格言“如果它走起来像鸭子,叫起来像鸭子,那它就是一只鸭子”形象地说明了鸭子类型的思想:我们不在乎对象是不是一个真正的“鸭子”类的实例,只要它有“走”和“叫”的方法,我们就可以把它当作鸭子来对待。在编程中,多态允许我们使用统一的接口(相同的方法名或操作符)来处理不同类型的对象,而每个对象会根据自身的类型执行不同的行为。例如,“狗”是一种“哺乳动物”,“哺乳动物”是一种“动物”。在设计类结构时,仔细考虑类之间的关系,优先使用组合而非继承,并在必要时限制继承的深度和复杂性,是提高代码可维护性的关键。 阅读详情

相关推荐

C++入门篇----封装,继承,多态

官方解释:封装的意义在于将属性和行为(数据和操作数据的函数)作为一个整体,表现生活中的事物,同时保护数据成员不被类以外的程序直接访问或修改,只能通过提供的公共接口访问。结合生活例子:想象一个闹钟。闹钟的内部有电路、电池、发声装置等。我们不关心闹钟是如何工作的,我们只关心它的功能:设置时间、响铃等。这就是封装。我们只看到闹钟给我们提供的接口(设置时间、响铃等),而其内部的具体实现细节被隐藏了。int minute;

IDdaxia的博客 1553

(十)python之多态

多继承、多态

Sean_0819的博客 1万+

Python 中的封装详解

隐藏实现细节:封装隐藏了对象内部的实现细节,外部只暴露必要的接口。这种隐藏实现使得对象的使用者不需要关心对象内部是如何工作的。保护对象的状态:通过封装,我们可以控制对象的属性,限制外部对属性的修改,从而保持对象的内部状态的一致性和有效性。提供接口:封装通过方法提供给外部访问对象的操作接口,确保对象的行为和状态的有效性。封装使得对象的内部细节对外部是透明的,外部只能通过定义好的方法来访问和操作对象的状态。

m0_62599305的博客 1796

封装、继承、多态详解

封装、继承、多态 (1)封装   封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 (2)继承   继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。    继承现有类 + 扩展 继承概念的实现方式有三类:实现继承、接口继承和可视继承...

weixin_30296405的博客 1150

Python教程:一文了解Python封装

在 Python 中,封装是面向对象编程(OOP)的重要特性之一。封装的主要目的在于将对象的状态(属性)和行为(方法)结合在一起,并隐藏内部实现细节,保护对象的完整性。本文将从基础到深入,带你全面理解 Python 的封装技术,并通过实战案例加深理解。

旦莫的博客 1739

Python编程基础19:封装、继承与多态

文章目录零、本讲学习目标一、类的封装(一)为什么需要封装1、案例演示2、案例分析3、解决方案(二)如何实现封装1、封装的定义(2)封装的实现(3)案例演示 零、本讲学习目标 解如何利用封装保护属性 掌握单继承和多继承,会重写和调用父类方法 理解多态的使用 一、类的封装 (一)为什么需要封装 Python是面向对象的编程语言,因为面向对象中所有的实体都是以对象为基本单位的,以宏观世界的实体来映射到计算机世界中,每个对象有它自己的属性和自己的行为,我们用类来将这些属性和行为封装到一起,当它实例化出来一个

howard2005的专栏 1万+

Python入门基础教程:继承、封装、多态 (非常详细)

这篇文章介绍 面向对象的三大特征——封装,继承,多态。

xx16755498979的博客 6218

[STM32H750]HAL库下FMC驱动正点原子MCU屏的移植与优化

本文详细介绍了在STM32H750平台上使用HAL库移植与优化正点原子MCU屏幕驱动的完整过程。重点解析了FMC硬件配置、Cache一致性处理、精确延时实现等关键技术难点,提供了实用的移植方案和性能优化技巧,帮助开发者高效解决屏幕显示问题。

rock5的博客 286

python中的三大特点:封装 继承 多态

面向对象的三大特点: 封装:将有一定功能的代码封装起来,使用时调用即可 继承:将公共的属性和方法放在父类中,自己自考虑特有的属性和方法。 多态:程序运行过程中,根据执行条件的不同,动态执行不同的操作代码的过程称为运行时多态。 一 封装 1.封装是面向对象编程的一大特点 2.面向对象编程的第一步,将属性和方法封装到一个抽象的类中 3.外界使用类创建对象,然后让对象调用方法 4...

yangkaiorange的博客 1万+

[CTFSHOW]JWT

文章目录前言JWT简介CTFSHOW Web345CTFSHOW Web346前置知识开始做题CTFSHOW Web347CTFSHOW Web348CTFSHOW Web349CTFSHOW Web350前置知识利用WP如何防御 前言 有些师傅向我咨询WP,索性就发了吧,其实早就写好了,只是懒,在github仓库里囤着 JWT简介 可以看看我的Github总结给自己看的,Y4tacker CTFSHOW Web345 首先打开题目,查看源码,接下来访问/admin被跳转回主页啥也没有发生 where is

Y4tacker的博客 6043

医疗影像处理实战:如何用Slicer和Mimics将.nii.gz文件转为.ply格式(附避坑指南)

本文详细介绍了利用3D Slicer和Materialise Mimics软件,将医学影像中常见的.nii.gz格式文件转换为通用三维网格.ply格式的完整实战流程。文章重点分享了从数据分割、DICOM序列导出到高质量网格生成的核心步骤与关键参数设置,并提供了针对常见问题的避坑指南,旨在帮助医学影像研究者和工程师高效完成从体数据到三维模型的关键转换。

weixin_28304023的博客 102

python学习之【继承、封装、多态】

python学习——封装、继承、多态。看完这篇文章,你觉得python是你心目中的编程语言top1吗。

沃和莱特的博客 4027

深入解析TMC2209 UART寄存器配置:从基础指令到高级参数调优

本文深入解析TMC2209 UART寄存器配置,从基础指令到高级参数调优,涵盖电流控制、微步细分等关键设置。通过实战案例和优化技巧,帮助开发者高效配置步进电机驱动,提升系统性能和稳定性。特别介绍了UART通信协议和CRC校验实现,确保数据传输可靠性。

tequila的博客 1159

【Python面向对象】封装、继承、多态

面向对象有三个基本特征,分别是封装、继承和多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用/调用!本文将利用Python语言进行简单举例,以帮助大家更好地理解这三个特征。

尹煜的博客 5681

RRAM/ Near Memory Computing (NMC) Survey - Reading Notes 0707

Reading Notes of Resistive Random Access Memory – Day 2 Chapter 3 RRAM Characterization and Modeling Overview of RRAM Physical Mechanism A general picture for the filamentary switching mechanism. Forming: 对本征RRAM样本,加电压VformingV_{forming}Vforming​,中间氧化层的O

Blog of Lucky H6 990

详述字符集与汉字编码

字符集与字符编码是文本处理的基础概念。字符集定义字符集合(如ASCII、GB2312、Unicode),字符编码则规定字符如何存储为二进制数据。汉字编码经历了从区域化(GB2312、GBK、BIG5)到全球化(Unicode)的演进,Unicode通过UTF-8、UTF-16等编码方案实现跨语言兼容。UTF-8因兼容ASCII、节省空间且无乱码风险,成为中文互联网的主流编码。正确处理编码问题需统一标准、明确声明格式,并注意生僻字的特殊处理。

零零发不爱ai的博客 805

python面向对象的三大特性:封装,继承,多态

我们接下来来聊聊Python代码中的“继承”:类是用来描述现实世界中同一组事务的共有特性的抽象模型,但是类也有上下级和范围之分,比如:生物 => 动物 => 哺乳动物 => 灵长型动物 => 人类 => 黄种人从哲学上说,就是共性与个性之间的关系,比如:白马和马!所以,我们在OOP代码中,也一样要体现出类与类之间的共性与个性关系,这里就需要通过类的继承来体现。简单来说,如果一个类A使用了另一个类B的成员(属性和方法),我们就可以说A类继承了B类,同时这也体现了OOP中==代码重用的特性==!

qq_55451220的博客 2821

手把手教你用OpenCore在Dell Optiplex 3060上安装黑苹果(含ALC255声卡修复)

本文提供了一份详尽的指南,教你如何在Dell Optiplex 3060微型台式机上安装黑苹果系统。文章重点解决了使用OpenCore引导时的核心配置,特别是针对Intel UHD 630核显的驱动优化和Realtek ALC255声卡的修复方案,旨在帮助用户打造一个稳定可用的macOS工作站。

weixin_29275257的博客 787

面向对象三大特性:封装、继承、多态(最全面最详细的解释)

面向对象三大特性:封装、继承、多态 封装 概念: 将一些属性和相关方法封装在一个对象中,对外隐藏内部具体实现细节。 内部实现,外界不需要关心,外界只需要根据”内部提供的接口“去使用就可以。 好处: 使用起来更加方便:因为已经把很多相关的功能,封装成一个整体,类似于像外界提供一个工具箱,针对于不同的场景,使用不同的工具箱就可以; 保证数据的安全:针对于安全级别高的数据,可以设置成”私有“,可以控制数据为只读(外界无法修改),也可以拦截数据的写操作(进行数据校验和过滤); 利于代码维护:如果后期,功能代码需要

frighting_ing的博客 2万+

前端开发 - 完美解决video.js和flv.js视频同时播放数量限制的问题,即浏览器针对同一域名的请求限制问题(解决flv.js/video.js在页面播放最多不超过6个问题、浏览器并发请求限制数

flv.js,video.js,vue,reactive,uniapp,前端开发,flv视频同时播放有限制怎么办,浏览器限制多个视频同时播放怎么办,使用flv.js在前端播放,最多只能播放6个视频,突破浏览器域名并发限制,如何解决flvjs与videojs视频播放同时播放数量限制,video.js 一个页面同时播放多个视频的实例代码,解决网页视频最大只能播放6路的问题,浏览器只能播放6路http-flv流的解决方法,一个浏览器播放5个或者6个flv的视频就不能播放了,video.js 无法在页面同时播放多个

✅ 精选推荐文章 4994

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Python 继承、多态、封装、抽象

数据抽象是面向对象编程(OOP)的一个重要原则,其目的是隐藏系统的复杂实现细节,只向用户展示必要和相关的信息。数据抽象通过提供简单和直观的接口,有助于提高效率和减少复杂性。它使程序员能够处理简化的系统表示,并管理复杂的操作。在 Python 中,可以使用抽象基类(Abstract Base Classes, ABC)和接口来实现数据抽象。抽象基类是定义了一组抽象方法的类,这些方法必须由派生类实现。抽象方法是没有具体实现的方法,只有方法签名。

疯一样的码农 1720

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Python学习之封装、继承、多态详解

面向对象的三大特征 封装 如何隐藏一个对象中的屈性?如何获取对急中的属性? 继承 定义一个类Animal(动物》这个类中需要两个方法:run( sleepO定义一个类Dog(狗)这个类中需要三个方法: run () sleep( barks[)issubclass()检查—个类是否是另一个类的了类 重写 多重继承 鸭子类型 len0

一个野生自学的运维狗 2883

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

python-封装继承多态

私有属性和方法(实现封装) Python对于类的成员没有严格的访问控制限制,这与其他面向对象语言有区别。关于私有属性和私有方法.有如下要点: 1.通常我们约定,两个下划线开头的属性是私有的(private)。其他为公共的(public)。 2.类内部可以访问私有属性(方法) 3.类外部不能直接访问私有属性(方法) 4.类外部可以通过”类名_私有属性(方法)名" 访问私有属性(方法) #测试私有属性、私有方法 class Stud...

sshi9的博客 2436

Python基础(封装、继承、多态)

面向对象的三大特征:封装、继承、多态 封装 概念:将一个对象的数据隐藏在对象内部,不让在外界直接访问,而是通过对象提供的方法来访问这些隐藏起来的数据,这样就可以在访问方法中添加访问条件限制,目的是对数据的有效组织和数据安全性的保护 通俗理解:就是一个东西是自己的,不让外人直接拿到,而是通过向自己借东西的行为来判断是否可以借给他人 属性私有化封装 约定私有化:加一个下划线在规范上约定不能直接访问 语法私有化:加两个下划线在语法上不能通过属性名称直接访问 属性私有化是python层面的操作,底层解释器在解释时

新手未出村的博客 2116

python--实验10 封装,继承,多态

介绍了python中继承、多态、封装等的基础概念和基础代码。

wumingzei的博客 1183
上一篇: python安装包,2024最新Python下载环境配置教程!
下一篇: Python爬虫项目--爬取猫眼电影Top100榜(完整源码)!
Python_trys
博客等级 码龄2年 4357粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值