Python基础编程.ppt
- 配套讲稿:
如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!,展开阅读全文

咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。
咨信网小贴示:
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】


Python基础编程.ppt
















自信AI助手














微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/14755790.html