Python第九课-面向对象编程进阶(课件)

2024-02-28
| 26页
| 162人阅读
| 102人下载
普通

内容正文:

少儿编程课 1 面向对象编程进阶 这一节,我们学习面向对象的三大特征:封装、继承和多态 3 封装 继承 多态 面向对象 三大特征之封装 4 什么是封装呢?我们用前面Orc类来说: class Orc: def __init__(self, name, hp, lv): self.name = name self.hp = hp self.lv = lv def desc(self): print('我是%s,血量为:%s,等级为:%s' % (self.name, self.hp, self.lv)) orc = Orc('史瑞克', 200, 2) orc.desc() 在面向对象的编程思想中,将属性和方法隐藏在类中的行为,就称为封装。 属性和方法通过对象调用,对于调用者来说,隐藏了具体的实现细节。 5 封装除了隐藏细节外,还有另一个目的:数据的安全 就像机箱的目的是为了保护电脑内部的主板、硬盘、处理器、电源等 6 那么对于当前的Orc类来说,如何保证内部属性数据的安全呢? class Orc: def __init__(self, name, hp, lv): self.name = name self.hp = hp self.lv = lv def desc(self): print('我是%s,血量为:%s,等级为:%s' % (self.name, self.hp, self.lv)) orc = Orc('史瑞克', 200, 2) # 语法上没问题,但是不符合实际情况! orc.hp = -200 orc.desc() 这就好比,如何能保证电脑内部硬盘的安全,同时又能够让外部能够访问到硬盘 7 对于电脑来说是机箱+USB接口,对于类来说,是私有+getter/setter 1 属性前加上__,就变成了了私有属性 class Orc: def __init__(self, name, hp, lv): self.__name = name self.__hp = hp self.__lv = lv def desc(self): print('我是%s,血量为:%s,等级为:%s' % (self.__name, self.__hp, self.__lv)) orc = Orc('史瑞克', 200, 2) orc.desc() # 此时打印,会报错 print(orc.__hp) Traceback (most recent call last): File "C:/…/demo01.py", line 13, in <module> print(orc.__hp) AttributeError: 'Orc' object has no attribute '__hp' 此时运行(类外部访问),就会报错 2 外部如何访问属性呢?比如获取当前的血量 class Orc: def __init__(self, name, hp, lv): self.__name = name self.__hp = hp self.__lv = lv def desc(self): print(‘我是%s,血量为:%s,等级为:%s’ % (self.__name, self.__hp, self.__lv)) # get方法 def get_hp(self): return self.__hp orc = Orc('史瑞克', 200, 2) orc.desc() # get方法的使用 print(orc.get_hp()) 这就是所谓的属性的getter方法 8 那又该如何在外部修改属性的值呢?比如血量减少之后hp的重新赋值 3 这就是和getter对应的setter方法,类定义如下: 外部访问过程如下: class Orc: def __init__(self, name, hp, lv): self.__name = name self.__hp = hp self.__lv = lv def desc(self): print('我是%s,血量为:%s,等级为:%s' % (self.__nam

资源预览图

Python第九课-面向对象编程进阶(课件)
1
Python第九课-面向对象编程进阶(课件)
2
Python第九课-面向对象编程进阶(课件)
3
Python第九课-面向对象编程进阶(课件)
4
Python第九课-面向对象编程进阶(课件)
5
Python第九课-面向对象编程进阶(课件)
6
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。