下载此文档

python面向对象学习总结.doc


文档分类:IT计算机 | 页数:约20页 举报非法文档有奖
1/20
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/20 下载此文档
文档列表 文档介绍
引言提到面向对象,总是离不开几个重要的术语:多态(Polymorphism),继承(Inheritance)和封装(Encapsulation)。Python也是一种支持OOP的动态语言,本文将简单阐述Python对面向对象的支持。在讨论Python的OOP之前,先看几个OOP术语的定义:类:对具有相同数据和方法的一组对象的描述或定义。对象:对象是一个类的实例。实例(instance):一个对象的实例化实现。标识(identity):每个对象的实例都需要一个能够唯一标识这个实例的标记。实例属性(instanceattribute):一个对象就是一组属性的集合。实例方法(instancemethod):所有存取或者更新对象某个实例一条或者多条属性的函数的集合。类属性(classattribute):属于一个类中所有对象的属性,不会只在某个实例上发生变化类方法(classmethod):那些无须特定的对性实例就能够工作的从属于类的函数。Python中定义类的方式比较简单:class 类名: 类变量 def__init__(self,paramers):def 函数(self,...)其中直接定义在类体中的变量叫类变量,而在类的方法中定义的变量叫实例变量。类的属性包括成员变量和方法,其中方法的定义和普通函数的定义非常类似,但方法必须以self作为第一个参数。举例:classMyFirstTestClass: classSpec="itisatestclass" def__init__(self,word): print"say"+word defhello(self,name): print"hello"+name在Python类中定义的方法通常有三种:实例方法,类方法以及静态方法。这三者之间的区别是实例方法一般都以self作为第一个参数,必须和具体的对象实例进行绑定才能访问,而类方法以cls作为第一个参数,cls表示类本身,定义时使用***@classmethod;而静态方法不需要默认的任何参数,***@staticmethod。classMethodTest():count=0defaddCount(self):+=1print"Iamaninstancemethod,mycountis"+str(),******@staticmethoddefstaticMethodAdd():+=1print"Iamastaticmethond,mycountis"+str()***@classmethoddefclassMethodAdd(cls):+=1print"Iamaclassmethod,mycountis"+str(),clsa=MethodTest()()'''Iamaninstancemethod,mycountis1<instanceat0x011EC990>'''();#Iamastaticmethond,mycountis2();#Iamastaticmethond,mycountis3();#Iamaclassmethod,mycountis4();#Iamaclassmethod,mycountis5()'''Traceback(mostrecentcalllast):File"<pyshell#5>",line1,in<module>()TypeError:unboundmethodaddCount()mustbecalledwithMethodTestinstanceasfirstargument(gotnothinginstead)''' 从上面的例子来看,静态方法和类方法基本上区别不大,特别是有Java编程基础的人会简单的认为静态方法和类方法就是一回事,可是在Python中事实是这样的吗?看下面的例子:();#Iamaclassmethod,mycountis5classsubMethodTest(MethodTest): passb=subMethodTest()() ;#Iamastaticmethond,mycountis6() ;#Iamaclassmethod,mycountis7();#Iamaclassmethod,mycountis8 如果父类中定义有静态方法a(),在子类中没有覆盖该方法的话,()依然指的是父类的a()方法。而如果a()是类方法的情况下,()指向的是子类。***@staticmethod只适用于不想定义全局函数的情况。看看两者的具体定义:***@’sdefinitionisimmu

python面向对象学习总结 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数20
  • 收藏数0 收藏
  • 顶次数0
  • 上传人书犹药也
  • 文件大小92 KB
  • 时间2020-02-23