分享
分销 收藏 举报 申诉 / 41

类型Python基础编程.ppt

  • 上传人:仙人****88
  • 文档编号:14755790
  • 上传时间:2026-11-14
  • 格式:PPT
  • 页数:41
  • 大小:10.73MB
  • 下载积分:10 金币
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Python 基础 编程
    资源描述:
    单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,百年培训教材,*,1,Python OOP,基础,周鹏,课程目标,了解,Python OOP,特性,简单讲解应用场景,(B2B SA),简单讲解编程思路,3,本课目标,熟悉对象和类的基本概念,对象和类,什么是对象?,一切皆对象:,1,”,String,”,”,L,”,2,3,”,ist,”,”,x,”,:1,”,y,”,:2,def,func,():&x=,func,(),import module,file,class.,-Object Oriented Programming(OOP),对象和类,什么是类及其实例?,例如:,狗 是一个,”,类,”,则,一只叫,”,旺财,”,的狗 就是这个类的一个,”,实例,”,class,instance,一个类可以有无数个实例,对象和类,类和实例的组成?,属性,attributes,方法,methods-,即类或实例中的,函数,问:以狗为例,属性有哪些属性?又可以有哪些方法?,属性:嘴、爪子、尾巴,方法:叫、跑、咬,术语,composite,has-a,对象和类,例:,class dog:,.def _,init_(self,):,.,self.mouth,=”big,”,.def,bark(self,):,.print”%s WANGa,WANGa,”,%,self.mouth,.,help(dog,);,dir(dog,),wangcai,=dog();,help(wangcai,);,dir(wangcai,),wangcai.bark,(),dog.bark,(),dog.bark(wangcai,),-,说明什么?,对象和类,说明,类定义需要指定构造方法,_init_(),,,当执行,wangcai,=dog(),时实际上是执行了,dog._init_(wangcai,),这个方法,(,函数,),!,-,如果不指定?,所有的方法必须指定一个默认的参数,self,作为第一个参数,-,如果不指定?,类定义本身也是对象,,因此可直接调用,如前所示,在类中对自身属性的引用必须显式的使用,self,-,否则?,对象和类,例:,print,dog.mouth,print,wangcai.mouth,print,dog.bark,print,wangcai.bark,bound method,dog.bark,of,说明什么?,如果要定义在类中默认存在的属性?,对象和类,定义类的属性,class dog:,jaw=”sharp,”,32,paw=”long,”,5,def _,init_(self,):,.,print,dog.jaw,xiaohei,=dog(),print”,”,.,join(str(x,)for x in,xiaohei.paw,),对象和类,方法的参数,练习:定义一个,dog,类,包含,jaw,paw,mouth,等属性以及,bark(),escape(),bite,(),和,eat(),等动作,以及,reaction(),动作,,reaction,对各种外部刺激做出反应,如攻击,(attack),则吠叫并逃跑,食物则吃,人则吠叫并咬,(,用字符串表示刺激动作,),。定义一个实例,xiaohuang,,实际运行这些反应,反应时必须与对应的属性匹配,例如咬必须使用,mouth,等,.,对象和类,型与类,型,type,类,class,型就是系统默认内置的类,如?,.,type(1,2,3),type(list,),或者说,类就是型的一种,对象和类,型与类,d=dog(),type(d,),d,type(dog,),type(classobj,),Traceback,(most recent call last):,File,line 1,in?,NameError,:name,classobj,is not defined,对象和类,型与类,type(object,),type(list,),type(type,),继承,基本概念,狗,腊肠狗,哈巴狗,一只叫,“,旺财,”,的,“,土狗,”,继承,定义子类,class Dog:,def _,init_(self,):,self.sound,=,wangwang,def,bark(self,):,print,self.sound,class,Husky(Dog,):,def _,init_(self,):,self.sound,=,woowooo,niub,=Husky(),niub.bark,(),继承,定义子类,到目前为止,可以看到,OOP,的哪些好处?,-,封装,-,代码复用,继承,定义子类,class,Sharpei(Dog,):,def _,init_(self,):,self.sound,=,aoao,suobi,=,Sharpei,(),suobi.bark,(),此时运行,niub.bark,(),?,说明:子类之间的属性不会互相影响,继承,定义子类,如果执行如下语句:,suobi1=,Sharpei,(),suobi1.sound=,kaokao,此时再执行,soubi.bark,(),?,说明:实例之间的属性也不会互相影响,继承,更复杂的复用例子,class,Dog(object,):,def _,init_(self,):,self.sound,=,wangwang,self.paw,=sharp,self.jaw,=long,def bark():,.,class,Sharpei(Dog,):,def _,init_(self,):,Dog._init_(self,),self.sound,=,aoao,继承,类、子类和实例的关系,术语,inheritance,is-a,沙皮狗,is-a,狗,suobi,is-a,沙皮狗,比较,composition,has-a,?,属性也可以是一个类的实例,(instance),继承,类、子类和实例的关系,继承,名字空间在类中的表现,class Dog:,paw=None,def _,init_(self,):,self.sound,=,wangwang,self.fur,=,print This is a Dog:%s%,self.sound,def,grow(self,):,self.teeth,=white,继承,名字空间在类中的表现,class,Husky(Dog,):,brain=0.9,def _,init_(self,):,Dog._init_(self,),#,super(Husky,self)._init,_()#SAME EFFECT BUT BETTER,self.sound,=,woowooo,self.fur,=+,print This is a Husky:%s,fur:%s%(,self.sound,self.fur,),def,grow(self,):,self.paw,=grey fold,self.teeth,=white sharp,self.fur,=grey long,def,work(self,):,self.paw,=white unfold,self.muscle,=0.9,继承,名字空间在类中的表现,print“,ntest,1 links,print,niub._dict,_:%s%,niub._dict,_,print,niub._class,_:%s%,niub._class,_,print,Husky._bases,_:%s%,Husky._bases,_,print“,ntest,2 namespace,print,niub._dict,_:%s%,niub._dict,_,print,Husky._dict,_:%s%,Husky._dict,_,print,Dog._dict,_:%s%,Dog._dict,_,print“,ntest,3 _,dict,_ changes,niub.grow,(),print after grow():,print,tniub._dict,_:%s%,niub._dict,_,print,tHusky._dict,_:%s%,niub._dict,_,print,tDog._dict,_:%s%,Dog._dict,_,niub.work,(),print“when work():,print,tniub._dict,_:%s%,niub._dict,_,print,tHusky._dict,_:%s%,niub._dict,_,print,tDog._dict,_:%s%,Dog._dict,_,继承,名字空间在类中的表现,结果说明,继承,类、子类和实例的关系,继承,名字空间在类中的表现,_,dict,_,是内置的属性,本质:目录索引,使用,_class_,和,_bases_,向上链接,继承,名字空间在类中的表现,如果改变了,_,dict,_,的值?,一个,C,中名字覆盖的例子:,C:fork(),Python:,os.fork,(),继承,运算符重载,什么是运算符?,a+b,?,x=1,print x._add_(2),y=2,y._mul_(3),继承,运算符重载,x=Husky(),y=Husky(),x+y?,class,Husky(Dog,):,.,def _,add_(self,):,baby=Husky(),return baby,.,函数,(,方法,),重载,继承,运算符重载,运算符举例,_add_ _,radd,_ _,mul,_ _,iadd,_,_,str,_ _,repr,_,_and_ _or_,_,getattr,_ _,setattr,_ _,getitem,_ _,setitem,_,_,len,_ _,cmp,_ _,lt,_ _,eq,_ _,gt,_,_,iter,_(,迭代器,回顾,),_call_,多态,概念,Polymophism,例如:,1+2,a,+,b,x=Husky(),y=Husky(),x+y?,多态,概念,多态即对方法的重载,在,Java,、,C+,中,方法的重载必须先进行继承,而在,Python,中,可以在两个不相干的类中定义同样的方法接口,从而实现多态性,回顾前面对,Husky,和,Shapei,类的,bark(),方法的定义?,多态,一个例子:,Fake File,回顾:文件重定向?,buffer=,class,FakeFile,:,def,write(self,string):,buffer.append(string,),import sys,_,stdout,=,sys.stdout,sys.stdout,=,FakeFile,(),print,somesthing,思考:有何作用?,-,FakeDatabase,多态,运算符多态,多态,还有哪些地方可以应用多态?,测试中的,mock,技术?,项目实例,转到,PPT2,一点编程经验,关于正交性,rootsyslog01/root,#logexec-c1-m,20252,#,logexec,-c1-s-m,strace:STrace,strace,-p 20252 2&1,Any Questions?,End,Thank you!,
    展开阅读全文

    开通VIP折扣优惠下载文档

    提示  咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。

    咨信网小贴示:
    1、浏览或下载可查看了解,请点击【咨信网告知】。
    2、下载文件中如有侵权或不适当内容,将立即纠正。
    3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
    4、开具发票登录电脑端申请,请点击【索取发票】。

    咨信网客服组:【微信客服】

    自信AI创作助手
    关于本文
    本文标题:Python基础编程.ppt
    链接地址:https://www.zixin.com.cn/doc/14755790.html

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork