6.Python类与对象.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《6.Python类与对象.ppt》由会员分享,可在线阅读,更多相关《6.Python类与对象.ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Python 编程技术6.Python 类与对象陈建文 华中科技大学电子与信息工程系2014-04-106.1 类与对象定义类与对象定义6.2 类与对象特点类与对象特点6.3 类的构造函数类的构造函数6.4 类与对象检查类与对象检查6.5 面向对象模型面向对象模型6.6 对象高级主题对象高级主题6.Python 类与对象类与对象2014041026.Python 类与对象6.1 类与对象定义类与对象定义 面向过程与面向对象面向过程与面向对象o面向过程编程:面向过程编程:根据操作数据的函数或语句块来设计程序的。o面向对象编程:面向对象编程:n数据和功能结合起来,用称为对象的东西包裹起来组织程序的
2、方法;n在大多数时候你可以使用面向过程编程,但是有些时候当需要编写大型程序或是寻求一个更加合适的解决方案的时候,就需要面向对象的编程,Python既可以提供面向过程的编程,也可以面向对象的编程,归根到底,Python语言是面向对象的编程语言。2014041036.Python 类与对象 类与对象示例类与对象示例 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
3、()Aaaah.b1.eat()No,thanks!b1.eat()No,thanks!b1.hungryFalse b1.hungryFalse2014041046.Python 类与对象o类和对象是面向对象编程的两个主要方面,类类和对象是面向对象编程的两个主要方面,类创建一个新类型,而对象是这个类的实例创建一个新类型,而对象是这个类的实例。这。这类似于上面一个类类似于上面一个类Bird(),而,而b1是类是类Bird的一个的一个实例,也就是类的一个对象(实例)。实例,也就是类的一个对象(实例)。类的组成元素:类的组成元素:o 关键字(类):classo 类的名字:Birdo 构造函数:_i
4、nit_(self)o 类的方法:eat(self)(b1.eat()o 类的特性:hungry (b1.hungry)2014041056.Python 类与对象 类与对象格式类与对象格式p类的组成:类的组成: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 类的方法:class_func(sel
5、f,argv)n 类的特性:class_variable 2014041066.Python 类与对象 对象定义对象定义 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()n 对象特性:class_object_1.class_v
6、ariablen 对象方法:class_object_1.class_func(argv)2014041076.Python 类与对象6.2 类与对象特点类与对象特点 类与对象特性类与对象特性o对象可以使用普通的属于对象的变量存储数据,属对象可以使用普通的属于对象的变量存储数据,属于一个对象或类的变量被称为于一个对象或类的变量被称为特性特性;对象也可以;对象也可以使用属于类的函数具有的功能;这样的函数被称使用属于类的函数具有的功能;这样的函数被称为类的为类的方法方法。这些术语帮助我们把它们与孤立的。这些术语帮助我们把它们与孤立的函数和变量区分开来;特性和方法可以合称为类函数和变量区分开来;特性
7、和方法可以合称为类的的属性属性。o特性有两种类型:属于每个实例特性有两种类型:属于每个实例/类的对象或者属类的对象或者属于类本身,它们分别被称为实例变量和类变量。于类本身,它们分别被称为实例变量和类变量。o类使用类使用class关键字创建,类的特性和方法被列在一关键字创建,类的特性和方法被列在一个缩进块中。个缩进块中。2014041086.Python 类与对象o与类和对象的名称空间绑定的普通变量,即这与类和对象的名称空间绑定的普通变量,即这些名称只在这些类与对象的前提下有效。些名称只在这些类与对象的前提下有效。n类名.类变量(使用对象名.类变量也可访问);n对象名.对象变量。o命名空间定义的
8、位置:命名空间定义的位置:n类特性:紧跟在类定义之后;n对象特性:在_init_中使用self.xxx=定义。例子例子:class var():value=1 instance1=var()var.value instance1.value2014041096.Python 类与对象 类与对象方法类与对象方法o类的方法与普通的函数只有一个特别的区别:类的方法与普通的函数只有一个特别的区别:类的方法必须有一个额外的第一个参数名称类的方法必须有一个额外的第一个参数名称self,但是在调用这个方法的时候你不必为这个参,但是在调用这个方法的时候你不必为这个参数赋值,数赋值,Python会提供这个值,这
9、个特别的变会提供这个值,这个特别的变量指的是对象本身,按照惯例它的名称就是在量指的是对象本身,按照惯例它的名称就是在类定义中常见的类定义中常见的 self 这个变量名。这个变量名。n可以是任意一个变量名,但最好遵循通用的规则;可以是任意一个变量名,但最好遵循通用的规则;nSelf 这个变量名具有一定的魔法,在具体的对象中这个变量名具有一定的魔法,在具体的对象中它有特定的意义。它有特定的意义。20140410106.Python 类与对象oSelf参数的工作原理:假如你有一个类称为参数的工作原理:假如你有一个类称为MyClass和这个类的一个实例和这个类的一个实例MyObject。当你调。当你调
10、用这个对象的方法用这个对象的方法MyObject.method(arg1,arg2)的时候,这会由的时候,这会由Python自动转为自动转为MyClass.method(MyObject,arg1,arg2),这就是,这就是 self 的使用原理。的使用原理。o如果你有一个不需要参数的方法,你还是得给这如果你有一个不需要参数的方法,你还是得给这个方法定义一个带有个方法定义一个带有 self 参数。参数。o类与对象方法的使用:调用方法同普通函数一致,类与对象方法的使用:调用方法同普通函数一致,忽略忽略self参数。参数。n对象名.方法名(参数)20140410116.Python 类与对象 cl
11、ass 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!20140410126.Python 类与对象o类与对象的魔法:(类与对象的魔法:(详见对象高级主题详见对象高级主题)n_init_构造函数;n_del_析构函数;n_len_,_getitem_,_setitem_,
12、_delitem_这是系列映射规则;n_privatename 私有类的变量名;ndecorators 装饰器;n_iter_迭代器;n20140410136.Python 类与对象 类与对象多态类与对象多态oPolymorphism:术语多态来自于希腊语,多态意:术语多态来自于希腊语,多态意味着就算不知道变量所引用的对象类型是什么,味着就算不知道变量所引用的对象类型是什么,还是能对它进行操作,而且它也能根据(或者类)还是能对它进行操作,而且它也能根据(或者类)对象的类型的不同而表现出不同的行为。对象的类型的不同而表现出不同的行为。例如:例如:class var():value=1 insta
13、mce1=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)20140410146.Python 类与对象 类与对象封装类与对象封装oEncapsulation:封装是对外部隐藏对象内部细:封装是对外部隐藏对象内部细节的原则,看起来有点象多态,但封装并不等节的原则,看起来有点象多态,但封装并不等于多态;多态可以让用户对于不知道是什么类于多态;多态可以让用户对于不知道是什么类或者对象类型的对象进行方法调用;而封装是或者对象类型的对象进行方法调用
14、;而封装是可以不用关心对象是如何构建的而直接进行使可以不用关心对象是如何构建的而直接进行使用。用。例如:例如:class var():value=1 instance1=var()instance2=var()instance1.value=Python instance2.value=5520140410156.Python 类与对象 类与对象继承类与对象继承oInheritance:以普通类为基础建立专门的类对:以普通类为基础建立专门的类对象;如果已经有一个基类,想再建立一个新类,象;如果已经有一个基类,想再建立一个新类,新类中要添加几种新方法,而又要用原来基类新类中要添加几种新方法,而又
15、要用原来基类的一些方法,这个时候新类就要继承基类的方的一些方法,这个时候新类就要继承基类的方法,而又有新的方法,这就是继承;继承的方法,而又有新的方法,这就是继承;继承的方法就是在新类定义中添加一个基类作为参数。法就是在新类定义中添加一个基类作为参数。n例如:例如:class SongBird(Bird):def _init_(self):self.sound=Squawkdef sing(self):print(self.sound)20140410166.Python 类与对象6.3 类的构造函数类的构造函数 类的构造函数定义类的构造函数定义p类的构造函数的形式为:类的构造函数的形式为:n
16、 def _init_(self):superclass._init_(self)#未绑定超类 super(subclass,self)._init_()#调用super()statementp类的构造函数与其它普通方法不同的地方在于,类的构造函数与其它普通方法不同的地方在于,当一个对象被创建后,会立即调用构造方法,就当一个对象被创建后,会立即调用构造方法,就有点类似于程序中的有点类似于程序中的 init 的初始化方法。的初始化方法。p如果要继承构造方法,可以调用未绑定的超类构如果要继承构造方法,可以调用未绑定的超类构造方法,也可以用造方法,也可以用super函数调用超类构造函数。函数调用超类
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 对象
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内