python学习-----类的封装、继承,多态
封装
封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。
封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。


1 class dog(object): 2 nationality='ch'#公有属性 3 def __init__(self,name,food,leven):#构造函数,方法,初始化方法 4 self.name=name #实例指针,指向 属性 对象成员 5 self.food=food 6 self.leven=leven 7 self.__haot='hhh'#前面双下划线定义为私有属性 8 9 def get_hoat(self):#定义方法为私有属性提供接口10 return self.__haot11 def say(self):#类中的方法 都是公有方法12 print('hello,my name is ',self.name)13 def eat(self,foods):14 print("my food is %s,but my eat %s"%(self.food,foods))15 def leve(self):16 print("my leve is ",self.leven)17 18 def __del__(self):19 print("删除中...")20 21 22 d=dog("liili",'gl',"5")23 d.say()24 d.eat('kkk')25 d.leve()26 print(d.get_hoat())#通用接口访问私有属性27 28 print(d._dog__haot)#强制访问私有属性29 print(d.nationality)30 31 dog.nationality='chan'32 print(d.nationality)33 d.nationality='us'34 print(d.nationality)
1 class F1(object): 2 def __init__(self,n): 3 self.N = n 4 print('F1') 5 6 class F2(object): 7 def __init__(self,arg1): 8 self.a = arg1 9 print('F2')10 11 class F3(object):12 def __init__(self,arg2):13 self.b = arg214 print('F3')15 16 17 18 c1=F1('yjj')19 c2=F2(c1)#可以封装一个对象20 c3=F3(c2)#可以封装多层的对象21 print(c3.b.a.N)#通过 . 调用
继承
继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
通过继承创建的新类称为“子类”或“派生类”。
被继承的类称为“基类”、“父类”或“超类”。


1 class studen(object):#定义类 学生 基类 2 def __init__(self,name,age,clas):#名字,年龄,班级 3 self.name=name 4 self.age=age 5 self.clas=clas 6 def talk(self): 7 print('%stalk one.....'%self.name) 8 def walk(self): 9 print('%s walk....'%self.name)10 def info_user(self):11 print('name is %s, age is %s,clas is %s'%(self.name,self.age,self.clas))12 13 class clas_one(studen):#继承studen14 def __init__(self,name,age,clas,score):#重构构造方法15 #studen.__init__(self,name,age,clas)#先继承, 再重构16 super(clas_one,self).__init__(name,age,clas)#新式类17 self.score=score#增加新对象成员18 def talk(self):#重写方法19 print('is new talk ,%s'%self.name)20 def score_info(self):#新增加 子类方法21 print(self.score,'分')22 23 p=clas_one('学生一',36,'一年三班',178)24 p.talk()25 p.score_info()
1 class F1(object): 2 def __init__(self): 3 print('F1') 4 def a1(self): 5 print('F1a1') 6 def a2(self): 7 print('F1a2') 8 9 class F2(F1):10 def __init__(self):11 print('F2')12 def a1(self):13 self.a2()14 print('F2a1')15 def a2(self):16 print('F2a2')17 18 class F3(F2):19 def __init__(self):20 print('F3')21 def a11(self):22 print('F3a1')23 def a2(self):24 print('F3a2')25 26 obj=F3()27 obj.a1()#调用时,self指向当前对象
多态


1 class Animal(object): 2 def __init__(self,name): 3 self.name=name 4 def talk(self): 5 raise NotImplementedError('提示出错') 6 7 8 class c(Animal):#继承Animal 9 def talk(self):10 print('%s 1111'%self.name)11 12 class d(Animal):#继承Animal13 def talk(self):14 print('%s 2222'%self.name)15 16 17 def talk_all(obj):#用函数来模拟多态18 obj.talk()19 20 c1=c('猫')21 d1=d("狗")22 23 talk_all(c1)24 talk_all(d1)
以上是python学习-----类的封装、继承,多态的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

本文将阐述如何通过分析Debian系统下的Apache日志来提升网站性能。一、日志分析基础Apache日志记录了所有HTTP请求的详细信息,包括IP地址、时间戳、请求URL、HTTP方法和响应代码等。在Debian系统中,这些日志通常位于/var/log/apache2/access.log和/var/log/apache2/error.log目录下。理解日志结构是有效分析的第一步。二、日志分析工具您可以使用多种工具分析Apache日志:命令行工具:grep、awk、sed等命令行工具可

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

Laravel和Python在开发环境和生态系统上的对比如下:1.Laravel的开发环境简单,仅需PHP和Composer,提供了丰富的扩展包如LaravelForge,但扩展包维护可能不及时。2.Python的开发环境也简单,仅需Python和pip,生态系统庞大,涵盖多个领域,但版本和依赖管理可能复杂。

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

本文探讨DDoS攻击检测方法,虽然未找到“DebianSniffer”的直接应用案例,但以下方法可用于DDoS攻击检测:有效的DDoS攻击检测技术:基于流量分析的检测:通过监控网络流量的异常模式,例如突发性的流量增长、特定端口的连接数激增等,来识别DDoS攻击。这可以使用多种工具实现,包括但不限于专业的网络监控系统和自定义脚本。例如,Python脚本结合pyshark和colorama库可以实时监控网络流量并发出警报。基于统计分析的检测:通过分析网络流量的统计特征,例如数据

本文将指导您如何在Debian系统上更新NginxSSL证书。第一步:安装Certbot首先,请确保您的系统已安装certbot和python3-certbot-nginx包。若未安装,请执行以下命令:sudoapt-getupdatesudoapt-getinstallcertbotpython3-certbot-nginx第二步:获取并配置证书使用certbot命令获取Let'sEncrypt证书并配置Nginx:sudocertbot--nginx按照提示选

Debian系统中的readdir函数是用于读取目录内容的系统调用,常用于C语言编程。本文将介绍如何将readdir与其他工具集成,以增强其功能。方法一:C语言程序与管道结合首先,编写一个C程序调用readdir函数并输出结果:#include#include#includeintmain(intargc,char*argv[]){DIR*dir;structdirent*entry;if(argc!=2){
