Python:class类的简单介绍
2016-10-01 17:35
369 查看
1.类与实例
类与实例互相关联,类是实例的对象,而实例是真正的实物,他存放了类中所定义的对象的具体信息创建一个类
class MyNewObject(object): class_suite
object是所有类之母,如果你的类没有继承任何其他的父类,object将作为默认的父类。它位于所有类继承结构的最上层。如果你没有继承直接或者间接子类化一个对象,那么我们就定义了一个经典类(不建议使用经典类)
class MyNewObject: class_suite
实例化
先创建一个类 class Myfirst(object): pass #实例化这个类 obj=Myfirst() #关于类作为名称空间容器 >>> obj.x=4 >>> obj.y=5 >>> obj.y+obj.x 9 >>> "在这里实例名字obj将obj.x与obj.y关联起来,这就是我们所说的使用类作为名字空间容器。obj.x与obj.y是实例属性,并不是类Myfirst的属性,是obj实例对象的独有属性。"
2.方法
类的功能有一个更加通俗的名字叫做方法,在python中,方法定义在类定义中,但只能被实例所调用。class MyClass(object): #定义类 def printFoo(self): #定义方法 print "You win" "对于seld参数,他在所有的方法声明中都存在,这个参数代表实例对象本身,当你用实例调用方法的时候,由解释器悄悄的传递给方法,你不需要自己传递self进来,因为他是自动传人的。在其他的语言中self被称为“this” 一般的方法会需要这个实例,而静态方法或者类方法就不需要,其中类方法需要的是类而不是实例" #实例化类,创建一个对象 obj=MyClass() obj.printFoo() *******Output******* You win
3.创建一个类
class MyNewObject(object): def __init__(self,name,phone): self.name=name self.phone=phone print "Created instance for:",self.name def updatePhone(self,newphone): self.phone=newphone print "update phone %s for %s"%(self.phone,self.name) #实例化 obj=MyNewObject('cmustard',12345676) ***********output************ Created instance for: cmustard #方法调用更新 obj.updatePhone(2345235235) ***********output************ update phone 2345235235 for cmustard #访问实例属 a21c 性 print obj.name print obj.phone ***********output************ cmustard 2345235235
在这个类中定义了两个方法
__init__和updatePhone.
__init__()类似于类构造器,他在创建一个新的对象时被调用,在实例化的过程中,调用
__init__()方法,当一个类被实例化时,就可以定义额外的行为,比如设定初始值等等。
4.创建和使用子类
class NewClass(MyNewObject): def __init__(self,name,phone,id,email): MyNewObject.__init__(self,name,phone) self.id=id self.email=email def updateEmail(self,newEmail): self.email=newEmail print "Update e-mail address for ",self.name "我们创建了一个MyNewObject的一个子类,这个新的类,不仅继承了父类的updatePhone方法,还增加了updateEmail方法" "注意,这里我们要显示传递self实例对象给基类构造器,因为我们不是在在实例中而是在一个子类实例中调用哪个方法。只是因为我们不是通过实例来调用它,这种未绑定的方法调用需要传递一个适当的实例(self)给他" >>> cmustard=NewClass('cmustard','400-820-8820',3345,'cmustard@cmustard.com') Created instance for: cmustard >>> print cmustard <__main__.NewClass object at 0x00000000033D1E48> >>> cmustard.name='mustard' >>> cmustard.name 'mustard' >>> cmustard.updatePhone('400-110-3345') update phone 400-110-3345 for mustard >>> cmustard.email 'cmustard@cmustard.com' >>> cmustard.updateEmail('mustard@163.com') Update e-mail address for mustard >>> cmustard.email 'mustard@163.com' >>> >>> cmustard.id 3345 >>>
4.常用术语
1.抽象/实现抽象指对现实世界问题和实体的本质表现,行为和特征建模,建立一个相关的子集,可以用于描绘程序结构从而实现这种模型。
2.封装/接口
3.合成
合成扩充了对类的描述,是得对个不同的类合成为一个大的类,来解决现实问题,。合成描述了一个异常复杂的系统,比如一个类有其他类组成,更小的组件也有可能是其他类,数据属性及行为,所有这些合在一起,彼此是“有一个”的关系。
4.派生/继承/继承结构
5.泛华/特化
泛华表示所有子类与其父类及祖先类有一样的特点,所有子类可以认为同祖先类是“是一个”关系,因为一个派生对象是一个祖先类的例子。
6.多态
多态表明了动态(后来又称为运行时)绑定的存在,允许重载以及运行时类型确定和验证
相关文章推荐
- 【转】python的urllib 模块的简单介绍
- Class类的简单介绍
- 简明python教程学习笔记之九-str类方法简单介绍
- python json库 简单介绍
- Python 提交表单数的一点简单介绍
- Python简单的介绍
- [python知识] 爬虫知识之BeautifulSoup库安装及简单介绍
- 【数据结构&&算法系列】插入排序简单介绍及python代码
- Python: tkinter实例 简单介绍
- [Python学习] 简单网络爬虫抓取博客文章及思想介绍
- python 下chmod方法简单介绍
- Python解析XML简单介绍
- Python解析XML简单介绍
- 【数据结构&&算法系列】归并排序简单介绍及python代码
- python 中生成器的简单介绍及用法
- 简单介绍 Python 与FTP的交互
- python 的os模块下chmod方法简单介绍
- Python的lambda匿名函数的简单介绍
- Urllib.request用法简单介绍(Python3.3)
- 用Py2exe打包Python脚本简单介绍