Python类与对象PPT学习教案_第1页
Python类与对象PPT学习教案_第2页
Python类与对象PPT学习教案_第3页
Python类与对象PPT学习教案_第4页
Python类与对象PPT学习教案_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、会计学1Python类与对象类与对象201404106. Python 类与对象26. Python 类与对象类与对象第1页/共33页201404106. Python 类与对象3第2页/共33页201404106. Python 类与对象4 class Bird(): def _init_(self):self.hungry = True def eat(self):if self.hungry:print(Aaaah.)self.hungry = Falseelse:print(No,thanks!) b1=Bird() b1.eat ()Aaaah. b1.eat ()No,thanks

2、! b1.eat ()No,thanks! b1.hungryFalse b1.hungryFalse第3页/共33页201404106. Python 类与对象5第4页/共33页201404106. Python 类与对象6 class Class_Name(SuperClass,): class_variable = value def _init_(self, argv): statement def class_func(self, argv): statementn 关键字(类):classn 类的名字: Class_namen 构造函数: _init_(self,argv)n 类的

3、方法: class_func(self, argv)n 类的特性: class_variable 第5页/共33页201404106. Python 类与对象7 class_object_1 = Class_Name() class_object_2 = Class_Name() class_object_1.class_variable class_object_2.class_variable class_object_1.class_func(argv) class_object_2.class_func(argv)n 对象定义: class_object_1 = Class_Name(

4、)n 对象特性: class_object_1.class_variablen 对象方法: class_object_1.class_func(argv)第6页/共33页201404106. Python 类与对象8第7页/共33页201404106. Python 类与对象9 class var(): value = 1 instance1=var() var.value instance1.value第8页/共33页201404106. Python 类与对象10第9页/共33页201404106. Python 类与对象11第10页/共33页201404106. Python 类与对象1

5、2 class Bird:def _init_(self):self.hungry = Truedef eat(self):if self.hungry:print(Aaaah.)self.hungry = Falseelse:print(No,thanks!) b=Bird() b.hungryTrue b.eat()Aaaah. b.eat()No,thanks! b.eat()No,thanks!第11页/共33页201404106. Python 类与对象13第12页/共33页201404106. Python 类与对象14 class var(): value = 1 instamc

6、e1=var() var.value Python instance1.value 55 def add1(x,y): return x+y x=1,y=23 x=“spam”,y=Python add1(x,y)第13页/共33页201404106. Python 类与对象15 class var(): value = 1 instance1=var() instance2=var() instance1.value=Python instance2.value=55第14页/共33页201404106. Python 类与对象16 class SongBird(Bird):def _ini

7、t_(self):self.sound = Squawkdef sing(self):print(self.sound)第15页/共33页201404106. Python 类与对象17第16页/共33页201404106. Python 类与对象18 class Bird:def _init_(self):self.hungry = Truedef eat(self):if self.hungry:print(Aaaah.)self.hungry = Falseelse:print(No,thanks!) class SongBird(Bird):def _init_(self):super

8、(SongBird, self)._init_( ) self.sound = Squawkdef sing(self):print(self.sound)第17页/共33页201404106. Python 类与对象19第18页/共33页201404106. Python 类与对象20第19页/共33页201404106. Python 类与对象21 构造方法构造方法 构造方法不同于其它方法之处在于:当一个对象构造方法不同于其它方法之处在于:当一个对象被创建时,会立即调用构造方法,而且可以继承。被创建时,会立即调用构造方法,而且可以继承。 class Bird:def _init_(self

9、):self.hungry = Truedef eat(self):if self.hungry:print(Aaaah.)self.hungry = Falseelse:print(No,thanks!) class SongBird(Bird): def _init_(self): super(SongBird ,self)._init_() self.sound = Squawk def sing(self): print(self.sound)第20页/共33页201404106. Python 类与对象22 成员访问成员访问 利用利用_getitem_,_setitem_,等魔法可以

10、实,等魔法可以实现简单序列。现简单序列。 def checkIndex(key): if not isinstance(key,(int,float):raise TypeError if key s=ArithmeticSequence(1,2) s49 s4=3 s43 s613第21页/共33页201404106. Python 类与对象23class TestIterator():value=0def _next_(self):self.value+=1if self.value 10:raise StopIterationreturn self.valuedef _iter_(sel

11、f):return self ti=TestIterator() list(ti)1, 2, 3, 4, 5, 6, 7, 8, 9, 10第22页/共33页201404106. Python 类与对象24def flatten(nested): try: for sublist in nested: for element in flatten(sublist): yield element except TypeError: yield nested s=1,2,3,4,5,1,2,1,2,3,1,2list(flatten(s)1, 2, 3, 4, 5, 1, 2, 1, 2, 3,

12、1, 2 for i in flatten(s):. print(%2d %i,end=). 1 2 3 4 5 1 2 1 2 3 1 2 这是一个展开嵌套列表的这是一个展开嵌套列表的带有关键字带有关键字yield的函数的函数Helpyield 生成器生成器 生成器是生成器是Python新引入的概念,是一种用普新引入的概念,是一种用普通的函数定义的迭代器。通的函数定义的迭代器。第23页/共33页201404106. Python 类与对象25 属性属性 利用利用property函数的四个参数,可以实现模拟访函数的四个参数,可以实现模拟访问器方法。问器方法。 class Rectangle()

13、: def _init_(self): self.width=0 self.height=0 def setSize(self,size): self.width,self.height=size def getSize(self): return self.width,self.height size=property(getSize,setSize) r=Rectangle () r.height0 r.width 0 r.width=10 r.height=5 r.size (10, 5) r.size=150,100 r.size(150, 100) r.height100 r.wid

14、th150 第24页/共33页201404106. Python 类与对象26class Myclass(): staticmethod def smeth(): print(This is a static method) classmethod def cmeth(self): print(This is a class method of,self) Myclass.smeth()This is a static method Myclass.cmeth ()This is a class method of 类装饰器类装饰器 类装饰器是一个函数,它接受类作为输入并返类装饰器是一个函数,

15、它接受类作为输入并返回类作为输出。回类作为输出。第25页/共33页201404106. Python 类与对象27第26页/共33页201404106. Python 类与对象28 def conflict ( state, nextX ):nextY=len(state)for i in range(nextY):if abs(statei-nextX) in (0,nextY-i):return Truereturn False第27页/共33页201404106. Python 类与对象29 def queens(num=8,state=(): if len(state)=num-1:

16、for pos in range(num): if not conflict(state,pos): yield (pos,)第28页/共33页201404106. Python 类与对象30 def queens(num=8,state=():for pos in range(num):if not conflict(state,pos):if len(state)=num-1:yield (pos,)else:for result in queens(num,state+(pos,):yield (pos,)+result第29页/共33页201404106. Python 类与对象31

17、def conflict ( state, nextX ):nextY=len(state)for i in range(nextY):if abs(statei-nextX) in (0,nextY-i):return Truereturn False def queens(num=8,state=():for pos in range(num):if not conflict(state,pos):if len(state)=num-1:yield (pos,)else:for result in queens(num,state+(pos,):yield (pos,)+result第30

18、页/共33页201404106. Python 类与对象32 list(queens(4)(1, 3, 0, 2), (2, 0, 3, 1) for solution in queens(8):print(solution)(0, 4, 7, 5, 2, 6, 1, 3)(0, 5, 7, 2, 6, 3, 1, 4)(0, 6, 3, 5, 7, 1, 4, 2)(0, 6, 4, 7, 1, 3, 5, 2)(1, 3, 5, 7, 2, 0, 6, 4). len(list(queens(8)92第31页/共33页201404106. Python 类与对象33 def prettyprint(solution): def line(pos,leng

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论