设为首页
收藏本站
切换到宽版
登录
立即注册
找回密码
搜索
搜索
本版
帖子
用户
快捷导航
论坛
BBS
VIP用户组
官网群
无名商城论坛
»
论坛
›
资源分享区
›
学习资源专区
›
【冷漠】【考核】Python——面向对象(封装,继承,多态) ...
返回列表
发帖
查看:
267
|
回复:
0
[其他技术]
【冷漠】【考核】Python——面向对象(封装,继承,多态)
[复制链接]
无名
无名
当前离线
积分
32464
1万
主题
1万
帖子
3万
积分
管理员
积分
32464
发消息
发表于 2022-5-8 17:33:49
|
显示全部楼层
|
阅读模式
Python面向对象(封装,继承,多态)
一 ,封装
1. 封装的意义:
①将属性和方法放到一起做为一个整体,然后通过实例化对象来处理;
②隐藏内部实现细节,只需要和对象及其属性和方法交互就可以了;
③对类的属性和方法增加 访问权限控制。
2.私有权限(在属性名和方法名前面加上两个__):
①类的私有属性 和 私有方法,都不能通过对象直接访问,但是可以在本类内部访问;
②类的私有属性 和 私有方法,都不会被子类继承,子类也无法访问;(private)
③私有属性 和 私有方法 往往用来处理类的内部事情,不通过对象处理,起到安全作用。
总结
Python中没有像C++中 public 和 private 这些关键字来区别公有属性和私有属性。
Python是以属性命名方式来区分,如果在属性和方法名前面加了2个下划线’__’,则表明该属性和方法是私有权限,否则为公有权限。
4,修改私有属性的方法(通常2种)
对象名.属性名 = 数据 ----> 直接修改`(类里使用)
对象名.方法名() ----> 间接修改
私有属性不能直接访问,所以无法通过第一种方式修改,一般的通过第二种方式修改私有属性的值:定义一个可以调用的公有方法,在这个公有方法内访问修改。
二,多态
1,定义
所谓多态:定义时的类型和运行时的类型不一样,此时就成为多态 ,多态的概念是应用于Java和C#这一类强类型语言中,而Python崇尚“鸭子类型”
鸭子类型:虽然我想要一只"鸭子",但是你给了我一只鸟。 但是只要这只鸟走路像鸭子,叫起来像鸭子,游泳也像鸭子,我就认为这是鸭子。
Python的多态,就是弱化类型,重点在于对象参数是否有指定的属性和方法,如果有就认定合适,而不关心对象的类型是否正确。
通俗点理解:定义obj这个变量是说的类型是:F1的类型,但是在真正调用Func函数时给其传递的不一定是F1类的实例对象,有可能是其子类的实例对象。
这种情况就是所谓的多态:
1.多态:不同的子类对象,调用相同的父类方法,产生不同的结果`
2.继承
3.重写
2,多态性的好处
1.增加了程序的灵活性
以不变应万变,不论对象千变万化,使用者都是同一种形式去调用,如func(animal)
2.增加了程序额可扩展性
通过继承animal类创建了一个新的类,使用者无需更改自己的代码,还是用func(animal)去调用
三.类属性和实例属性
类属性和实例属性**
在前面的例子中我们接触到的就是实例属性(对象属性),顾名思义,类属性就是类对象所拥有的属性,它被所有类对象的实例对象所共有,在内存中只存在一个副本,这个和C++中类的静态成员变量有点类似。(static)
对于公有的类属性,在类外可以通过类对象和实例对象访问
实例属性(对象属性)
通过实例(对象)去修改类属性
总结
①如果需要在类外修改类属性,必须通过类对象去引用然后进行修改。
②如果通过实例对象去引用,会产生一个同名的实例属性,这种方式修改的是实例属性,不会影响到类属性,并且之后如果通过实例对象去引用该名称的属性,实例属性会强制屏蔽掉类属性,即引用的是实例属性,除非删除了该实例属性。
四.静态方法和类方法
1,类方法:
是类对象所拥有的方法,需要用修饰器@classmethod来标识其为类方法
对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数(当然可以用其他名称的变量作为其第一个参数,但是大部分人都习惯以’cls’作为第一个参数的名字,就最好用’cls’了),能够通过实例对象和类对象去访问。
类方法还有一个用途就是可以对类属性进行修改:
属性
,
对象
,
实例
,
方法
,
私有
相关帖子
•
【Max】iapp实例教程-获取网盘密码
•
【Max】团队 教大家实现网站转软件
•
【FUT】防止编辑框自动弹出输入法
•
【FUT】代码分享:编辑框错误提示
•
【FUT】 iapp判断手机设备是否root
•
【沐洺】Amoli私有云V4.1.1 简约而不简单的私有云盘
•
【解忧】深入理解Java反射
•
【解忧】最全的JAVA知识汇总(附讲解和思维导图)
•
【LUR】 Amoli私有云 简约而不简单的私有云网盘搭建程序源
回复
使用道具
举报
返回列表
发帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表