网站大量收购独家精品文档,联系QQ:2885784924

python面向对象学习总结.docx

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

word格式

word格式

....

..

..

引言

引言

提到面向对象,总是离不开几个重要的术语:多态(Polymorphism),继承(Inheritance)

和封装(Encapsulation)。Python也是一种支持OOP的动态语言,本文将简单阐述Python对面向对象的支持。

在讨论Python的OOP之前,先看几个OOP术语的定义:

类:对具有相同数据和方法的一组对象的描述或定义。

对象:对象是一个类的实例。

实例(instance):一个对象的实例化实现。

标识(identity):每个对象的实例都需要一个可以唯一标识这个实例的标记。

实例属性(instanceattribute):一个对象就是一组属性的集合。

实例方法(instancemethod):所有存取或者更新对象某个实例一条或者多条属性的函数的集合。

类属性(classattribute):属于一个类中所有对象的属性,不会只在某个实例上发生变化

1.?P类y方t法h(oclanssm中etho的d):类那些无与须特对定的象对性实例就能够工作的从属于类的函数。

Python中定义类的方式比较简单:

class 类名:类变量

def init (self,paramers):

def 函数(self,...)

其中直接定义在类体中的变量叫类变量,而在类的方法中定义的变量叫实例变量。类的属性包括成员变量和方法,其中方法的定义和普通函数的定义非常类似,但方法必须以self作为第一个参数。

举例:

classMyFirstTestClass:classSpec=itisatestclassdef init (self,word):

printsay+worddefhello(self,name):

printhello+name

在Python类中定义的方法通常有三种:实例方法,类方法以及静态方法。这三者之间的区别是实例方法一般都以self作为第一个参数,必须和具体的对象实例进行绑定才能访问,而类方法以cls作为第一个参数,cls表示类本身,定义时使用@classmethod;而静态方法

不需要默认的任何参数,跟一般的普通函数类似.定义的时候使用@staticmethod。

classMethodTest():count=0

defaddCount(self):

MethodTest.count+=1

printIamaninstancemethod,mycountis+str(MethodTest.count),self@staticmethod

defstaticMethodAdd():

MethodTest.count+=1

printIamastaticmethond,mycountis+str(MethodTest.count)@classmethod

defclassMethodAdd(cls):

MethodTest.count+=1

printIamaclassmethod,mycountis+str(MethodTest.count),cls

a=MethodTest()a.addCount()

Iamaninstancemethod,mycountis1 main .MethodTestinstanceat0x011EC990

a.staticMethodAdd() ;#Iamastaticmethond,mycountis2MethodTest.staticMethodAdd();#Iamastaticmethond,mycountis3a.classMethodAdd();#Iamaclassmethod,mycountis4 main .MethodTest

MethodTest.classMethodAdd();#Iamaclassmethod,mycountis5 main .MethodTestMethodTest.addCount()

Traceback(mostrecentcalllast):Filepyshell#5,line1,inmoduleMethodTest.addCount()

TypeError:unboundmethodaddCount()mustbecalledwithMethodTestinstanceasfirstargument(gotnothinginstead)

从上面的例子来看,静态方法和类方法基本上区别不大,特别是有

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地湖北
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档