Python:class类的简单介绍
来源:互联网 发布:java 在线视频技术 编辑:程序博客网 时间:2024/05/22 15:22
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.x9>>>"在这里实例名字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#访问实例属性print obj.nameprint obj.phone***********output************cmustard2345235235
在这个类中定义了两个方法__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.id3345>>>
4.常用术语
1.抽象/实现
抽象指对现实世界问题和实体的本质表现,行为和特征建模,建立一个相关的子集,可以用于描绘程序结构从而实现这种模型。
2.封装/接口
3.合成
合成扩充了对类的描述,是得对个不同的类合成为一个大的类,来解决现实问题,。合成描述了一个异常复杂的系统,比如一个类有其他类组成,更小的组件也有可能是其他类,数据属性及行为,所有这些合在一起,彼此是“有一个”的关系。
4.派生/继承/继承结构
5.泛华/特化
泛华表示所有子类与其父类及祖先类有一样的特点,所有子类可以认为同祖先类是“是一个”关系,因为一个派生对象是一个祖先类的例子。
6.多态
多态表明了动态(后来又称为运行时)绑定的存在,允许重载以及运行时类型确定和验证
0 0
- Python:class类的简单介绍
- Class类的简单介绍
- Class类的简单介绍
- python类的简单介绍
- Python简单的介绍
- python(3) class介绍
- Python的GUI简单介绍
- 简单介绍python的历史
- 简单的介绍一下python
- 应用Python写的一个简单的Class代码生成器
- python类class中_init_函数以及参数self的简单解释
- 简单介绍 Python 与FTP的交互
- Python IDE Spyder的简单介绍
- Python, CPython, Pypy, Jython的简单介绍
- 爬虫程序的简单介绍(Python)
- xgboost+python参数介绍的简单使用
- Python, CPython, Pypy, Jython的简单介绍
- ||Python||complex复数类型的简单介绍
- 关于JS内存泄漏
- 小话设计模式(十二)代理模式
- Android 四大大图片缓存(Imageloader,Picasso,Glide,Fresco)原理、特性对比
- 如何向别人问问题
- 泊松分布
- Python:class类的简单介绍
- java io系列03之 ByteArrayOutputStream的简介,源码分析和示例(包括OutputStream)
- scope选项与绑定策略
- 【DP】大盗阿福
- MVC --------Android
- Codeforces Round 374 div2
- 一天一篇批处理之——Part3:复制/移动文件命令move,copy,xcopy
- HTML5之WebSoket——html5+java servlet实现
- phpstorm激活方法