下载此文档

python 面向对象学习总结.docx


文档分类:IT计算机 | 页数:约19页 举报非法文档有奖
1/19
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/19 下载此文档
文档列表 文档介绍
引言
提到面向对象,总是离不开几个重要的术语:多态(Polymorphism),继承(Inheritanee) 和封装(Eneapsulation)。Python也是一种支持OOP的动态语言,本文将简单阐述Python 对面向对象的支持。Java编程基础的人会 简单的认为静态方法和类方法就是一回事,可是在Python中事实是这样的吗?看下面的例 子:
() ;#I am a class method,my count is5
class subMethodTest(MethodTest):
pass
b=subMethodTest()
staticMethodAdd() ;#I am a static methond,my count is6
() ;#I am a class method,my count is7
() ;#Iam a class method,my count is8
如果父类中定义有静态方法a(),在子类中没有覆盖该方法的话,()仍然指的是父类的 a ()方法。而如果a()是类方法的情况下,()指向的是子类。***@staticmethod只适用 于不想定义全局函数的情况。
看看两者的具体定义:
***@staticmethod function is nothing morethan a function defined inside a class. It is callable
withoutinstantiating the class first. It's definition is immutable viainheritance.
***@classmethod function also callablewithout instantiating the class, but its definition follows
Subclass, not Parent class, via inheritance. That's because the firstargument for ***@classmethod function must always be cls (class).
•封装和访问控制
与Java不同,Python的访问控制相对简单,没有public, private, protected等属性, python认为用户在访问对象的属性的时候是明确自己在做什么的,因此认为私有数据不是 必须的,但是如果你必须实现数据隐藏,也是可以的,具体方法就是在变量名前加双下划线。 如—privatedata=0,定义私有方法则是在方法名称前加上—下划线。但即使对于隐藏的数 据,也是有一定的方法可以访问的。方法就是—className—attrName。Python对于私有变 量会进行Namemangling是Python中为了方便定义私有的变量和方法,防止和继承类以及其他 外部的变量或者方法冲突而采取的一种机制。在python中通过__spam定义的私有变量为最终 被翻译成_classname__spam,其中class name为类名,当类名是以_开头的时候则不会发生 Namemangling。Namemangling存在的一个问题是当字符串长度超过255的时候则会发生截 断。
class PrivateTest:
__myownedata=12
def __myownmethod(self):
print"can you see me?"
def sayhi(self):
print"say hi"
class subPrivateTest(PrivateTest):
pass

Traceback(most recent call last): File"vpyshell#5>", line 1, in <module> AttributeError:class subPrivateTest has no attribute '__myownedata'
•构造函数和析构函数
Python的构造函数有两种,_init__和__new__, __init__的调用不会返回任何值,在继承 关系中,为了保证父类

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

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数19
  • 收藏数0 收藏
  • 顶次数0
  • 上传人niupai21
  • 文件大小41 KB
  • 时间2022-06-13