Python编程-封装,继承与多态
目录
- 一、类的封装
- 1、案例演示
- 2、案例分析
- 3、解决方案
- 1、封装的定义
- 2、封装的实现
- 3、案例演示
一、类的封装
为什么需要封装:
Python
是面向对象的编程语言,因为面向对象中所有的实体都是以对象为基本单位的,以宏观世界的实体来映射到计算机世界中,每个对象有它自己的属性和自己的行为,我们用类来将这些属性和行为封装到一起,当它实例化出来一个对象的时候,我们可以说这个对象具有这些属性性和行为。- 对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性,降低了程序员保持数据与操作内容的负担。
- 对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性、提高可控性的目的。
1、案例演示
编写程序 - 演示属性没有受保护的类.py
运行程序,查看结果:
2、案例分析
上述案例将年龄赋值为一个负数-18,在语法上不会有任何问题,因此程序可以正常运行,但在现实生活中明显是不合理的,一般而言,年龄应该是某个范围内的正整数,比如[1, 120]内的某一个整数值。
3、解决方案
为了避免出现上述不合理的问题,在设计一个Python类时,应该对成员变量的访问作出一些限定,不允许外界随意访问,这就需要实现类的封装。
如何实现封装:
1、封装的定义
类的封装,是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是通过该类所提供的方法来实现对内部信息的操作访问。
2、封装的实现
在定义一个类时,把属性定义为私有属性,即在属性名的前面加上两个下划线,私有属性只能在它所在类中被访问,如果外界想要访问私有属性,需要提供方法来访问,其中包括用于获取属性值的get_xxx()方法(简称getter)和设置属性值的set_xxx()方法(简称setter)。
3、案例演示
编写程序 - 演示私有属性.py
运行程序,查看结果:
直接访问私有属性,看看会是什么情况?
到此这篇关于Python编程-封装,继承与多态的文章就介绍到这了,更多相关Python封装,继承与多态内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Python面向对象编程之类的封装
目录 1.封装的理解 2.私有类属性.公开类属性.私有实例属性和公开实例属性 2.1 公开类属性 2.2 私有类属性 2.3 公开实例属性 2.4 私有实例属性 2.5 私有属性不一定真的私有 3.私有方法和公开方法 4.类的保留属性 5.类的保留方法 1.封装的理解 封装(Encapsulation):属性和方法的抽象 属性的抽象:对类的属性(变量)进行定义.隔离和保护 分为私有属性和公开属性: 私有属性:只能在类内部访问 公开属性:可以通过类.对象名访问 可以选择公开或隐藏属性,隐藏属性的内
-
Python面向对象编程之继承与多态详解
本文实例讲述了Python面向对象编程之继承与多态.分享给大家供大家参考,具体如下: Python 类的继承 在OOP(Object Oriented Programming)程序设计中,当我们定义一个class的时候,可以从某个现有的class 继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). 我们先来定义一个class Person,表示人,定义属性变量 name 及 sex (姓名和性别): 定义一
-
在Python中封装GObject模块进行图形化程序编程的教程
Python 是用于编码图形界面的极佳语言.由于可以迅速地编写工作代码并且不需要费时的编译周期, 所以可以立即使界面启动和运行起来,并且不久便可使用这些界面. 将这一点与 Python 易于链接本机库的能力结合起来,就可以形成一个出色的环境. gnome-python 是为 Python 封装 GNOME 及其相关库的软件包. 这使您能够用 Python 编写外观与核心 GNOME 应用程序完全相同的应用程序,而所花的时间只是用 C 编写该应用程序所花的一部分. 然而,不用 C 进行编程会有一个
-
Python编程-封装,继承与多态
目录 一.类的封装 1.案例演示 2.案例分析 3.解决方案 1.封装的定义 2.封装的实现 3.案例演示 一.类的封装 为什么需要封装: Python是面向对象的编程语言,因为面向对象中所有的实体都是以对象为基本单位的,以宏观世界的实体来映射到计算机世界中,每个对象有它自己的属性和自己的行为,我们用类来将这些属性和行为封装到一起,当它实例化出来一个对象的时候,我们可以说这个对象具有这些属性性和行为. 对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性
-
Python面向对象封装继承和多态示例讲解
面向对象的三大特征:封装,继承,多态 1.封装: 提高程序的安全性 将数据(属性)和行为(方法)包装到类对象中,在方法内部对属性进行对象的外部调用方法. 这样无需关心内部的具体实现. 在python中没有专门的修饰符用于属性的私有,如果属性不希望被访问,前面使用两个下划线 2.继承: 提高代码的复用性 3.提高程序的可拓展性和可 维护性. 1. 封装 我们来看看私有方式的使用: # 作者:互联网老辛 # 开发时间:2021/4/4/0004 22:11 class Student: def __
-
Python类的继承和多态代码详解
Python类的继承 在OOP(ObjectOrientedProgramming)程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Baseclass.Superclass). 我们先来定义一个classPerson,表示人,定义属性变量name及sex(姓名和性别): 定义一个方法print_title():当sex是male时,printman:当sex是female时,prin
-
Python面向对象之继承和多态用法分析
本文实例讲述了Python面向对象之继承和多态用法.分享给大家供大家参考,具体如下: Python 类的继承和多态 Python 类的继承 在OOP(Object Oriented Programming)程序设计中,当我们定义一个class的时候,可以从某个现有的class 继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). 我们先来定义一个class Person,表示人,定义属性变量 name 及 s
-
Python类的继承、多态及获取对象信息操作详解
本文实例讲述了Python类的继承.多态及获取对象信息操作.分享给大家供大家参考,具体如下: 继承 类的继承机制使得子类可以继承父类中定义的方法,拥有父类的财产,比如有一个Animal的类作为父类,它有一个eat方法: class Animal(object): def __init__(self): print("Animal 构造函数调用!") def eat(self): print("Animal is eatting!") 写两个子类,Cat和Dog类,继
-
Python类的继承与多态详细介绍
目录 概念 类的创建 类的继承 多态的使用 概念 类(Class): 用来描述具有相同的属性和方法的对象的集合. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 类有一个名为 __init__() 的特殊方法(构造方法),该方法在类实例化时会自动调用 self:self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类. 类调用 Car.weight 实例化 car01=Car(5) 实例对象调用 car01
-
Java OOP三大特征之封装继承与多态详解
目录 封装 继承 多态 OOP语言的三大特征即:面向对象的三个比较重要的思想 封装 官话:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口进行交互 通俗讲,不让类外看到实现的细节,通过技术手段对这些细节包装一个外壳,同时提供几个公开的接口,让你进行交互即可(例如:手机,内部的具体零件,不会让你观察到,使用者只能看到外壳,通过外壳的显示屏,充电口进行交互)简而言之——套壳屏蔽细节 实际上通过private来实现 例如: 继承 面向对象的思想中提出了继承的概念,专门用来进
-
C语言也有封装,继承和多态你知道吗
目录 封装 继承 多态 函数的指针 通过函数的指针实现多态 总结 我们知道封装.继承.多态是面向对象的三大特性,我们也知道C语言是面向过程的语言,那么可不可以在面向过程的语言中用面向对象的思想编程呢.现在我们就一起看看用C语言如何实现封装.继承.多态. 封装 所谓封装就是把实现的细节隐藏起来,外部只能通过相关的函数对一个类进行操作,一呢是方便代码的复用,二也可以有效的保证代码的安全性.那么我们看看Redis源码中对于双向链表的一个设计和实现,是不是就是传说中的封装呢? typedef struc
-
用实例解释Python中的继承和多态的概念
在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). 比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印: class Animal(object): def run(self): print 'Animal is running...' 当我们需要编写Dog和Cat类时,就可以直接从Animal
随机推荐
- VBS教程:函数-InStr 函数
- nginx配置相关介绍
- 最基础的Python的socket编程入门教程
- php抓取并保存网站图片的实现代码
- 浅谈javascript的url参数parse和build函数
- 抛弃Nginx使用nodejs做反向代理服务器
- 用javascript解决外部数据抓取中的乱码问题
- ASP下的两个防止SQL注入式攻击的Function
- jQuery实现简单的DIV拖动效果
- 一天一个shell命令 linux文件内容操作系列-cat命令详解
- VBS教程:运算符-幂运算符 (^)
- MySQL之Field‘***’doesn’t have a default value错误解决办法
- jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
- JavaScript中的View-Model使用介绍
- Linux下用dnsmasq做dns cache server的配置方法
- Yii2使用Bootbox插件实现自定义弹窗
- php访问数组最后一个元素的函数end()用法
- 非常实用的java自动答题计时计分器
- PHP面向对象之里氏替换原则简单示例
- python数字图像处理实现直方图与均衡化