python学习—–类的封装、继承,多态

封装

封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。

封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

 

python学习-----类的封装、继承,多态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)

登录后复制View Code

 

 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)#通过  .  调用

登录后复制

 

继承

继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。

立即学习“Python免费学习笔记(深入)”;

通过继承创建的新类称为“子类”或“派生类”。

被继承的类称为“基类”、“父类”或“超类”。

 

python学习-----类的封装、继承,多态python学习-----类的封装、继承,多态

 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()

登录后复制View Code

 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指向当前对象

登录后复制

 

 

多态

 

python学习-----类的封装、继承,多态python学习-----类的封装、继承,多态

 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)

登录后复制View Code

 

以上就是python学习—–类的封装、继承,多态的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2269670.html

(0)
上一篇 2025年2月27日 11:19:29
下一篇 2025年2月24日 18:08:49

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 浅谈Python中的排序

    浅谈排序 程序中经常用到排序函数,python 提供了 sort 和 sorted 函数,一个原地排序,一个返回排序后的新结果 1、参数 函数原型: sort([cmp[, key[, reverse]]]) 登录后复制 意思是sort方法…

    编程技术 2025年2月27日
    200
  • 爬虫&问题解决&思考

      最近刚接触python,找点小任务来练练手,希望自己在实践中不断的锻炼自己解决问题的能力。这个小爬虫来自慕课网的一门课程,我在这里记录的是自己学习的过程中遇到的问题和解决方法以及爬虫之外的思考。   这次的小任务就是写一个小爬虫。为啥选…

    2025年2月27日
    200
  • VS Code python怎么使用的?

    之前一直都是使用notepad++来编写python代码,后来想起来之前查资料的时候有个vs code可以编写一些的脚本语言(js,node.js)甚至是高级编程语言(c#,php,java,python等)而且这是微软自家写的,这就引起我…

    2025年2月27日
    200
  • PYTHON博客记录

    一、Python中Unicode字符串 字符串还有一个编码问题。   因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的…

    编程技术 2025年2月27日
    200
  • 分享一个Python用户名密码登录系统

    # -*- coding: gb2312 -*-#用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作#作者:凯鲁嘎吉 – 博客园 import hashlibdef md5(arg):#这是加密函数,将传进来的函数加…

    2025年2月27日
    200
  • 关于python类的实例详解

    编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种不同的方式, 对这些不同的编程方式的…

    编程技术 2025年2月27日
    200
  • python学习日记

    1、数值拷贝 import copy# ######数字、字符串######n1 = 123print(id(n1))n2 = n1print(id(n2))###浅拷贝###n2 = copy.copy(n1)print(id(n2))#…

    编程技术 2025年2月27日
    200
  • Python的一些小练习

    作业一:                                                                                                                    …

    编程技术 2025年2月27日
    200
  • 新浪新闻详情页的数据抓取实例

    上一篇文章《python爬虫:抓取新浪新闻数据》详细解说了如何抓取新浪新闻详情页的相关数据,但代码的构建不利于后续扩展,每次抓取新的详情页时都需要重新写一遍,因此,我们需要将其整理成函数,方便直接调用。 详情页抓取的6个数据:新闻标题、评论…

    编程技术 2025年2月27日
    200
  • 分享Python实现选择排序的实例教程

    选择法也算是入门的一种排序算法,比起冒泡法,它的方法巧妙了一些,它的出发点在于“挑”,每次挑选数组的最值,与前置元素换位,然后继续挑选剩余元素的最值并重复操作。个人认为选择排序的意义不在于排序本身,而在于挑选和置换的方法,对于一些问题很有帮…

    编程技术 2025年2月27日
    200

发表回复

登录后才能评论