美文网首页
面向对象

面向对象

作者: 苏柏娜 | 来源:发表于2016-11-20 23:19 被阅读12次

1.类与实例

新式类,必须继承一个类,即必须有一个父类

class MyNewObjectType(bases):

经典类,没有指定父类

class MyNewObjectType:

经典类已过时,尽量使用新式类

实例化:myFirstObject=MyNewObjectType(),一般会将实例赋给一个变量,因为不赋给变量的话,就是没有任何引用,会被垃圾回收器回收的。

2.将类作为名字空间的容器

类不做任何事情,实例化后,给变量赋值

class MyData(object):

    pass

>>> mathObj=MyData()

>>> mathObj.x=4

>>> mathObj.y=5

>>> mathObj.x+mathObj.y

9

3.self

类中方法会有一个self的参数,代表实例对象本身,必须通过实例来调用,且调用的时候不需要传入self参数。

查看类的属性的方法:

1)dir(类名) 2)print 类名.__dict__

4.特殊的类属性

C.__name__:类C的名字(字符串)

C.__doc__:类C的文档字符串

C.__bases__:类C的所有父类构成的元组

C.__dict__:类C的属性

C.__module__:类C定义所在模块

C.__class__:实例C对应的类

__name__:对于类来说返回的是类名,对于类型对象来说返回的是类型名

>>> stype=type("What is your quest?")

>>> stype.__name__

'str'

>>> type(3.13344).__name__

'float'

__module__:当类是在本类中时,类所属的模块是__main__

当是被导入到其他模块时,类所述的模块是来源的模块

from mymod import C则类的C.__module__为mymod

5.特殊的实例属性

c.__class__:实例化c的类

c.__dict__:c的属性、

6.调用绑定方法和非绑定方法

一般情况下都是通过实例去调用方法的,即称为绑定方法

而在子类中可以通过父类调用父类方法的方式来复用代码,即称为非绑定方法

7.静态方法和类方法以及实例方法

实例方法中得传入self参数,表示实例对象,实例方法可以操作实例变量,因为已传入self,在调用实例方法的时候解释器会自动传入实例对象

静态方法不传self参数,不可以操作实例变量

类方法传入类本身即cls变量,同样不可以操作实例变量

但实例方法,静态方法和类方法都可以访问静态变量(类变量)

8.类的继承

可继承多个类

class subClassName(ParentClass1[,ParentClass2,ParentClass3])

subClassName.__bases__可以查看到父类

子类可以覆盖父类的方法

如果在覆盖父类方法时,想重用父类方法,使用super

class C(P):

    def  __init__(self):

              super(C,self).__init()

9.类和实例的内建函数

issubclass(sub,sup):sub是不是sup的子类

isinstance(obj1,obj2):判断obj1是不是obj2的实例

print issubclass(C,P)

print isinstance(c,C)

hasattr(obj,attrName)类或实例是否有某个属性

getattr(obj,attrName)获取类或实例的某个属性

10.super()函数

super(type[,obj]):返回此type的父类

如果obj是一个实例,isinstance(obj,type)必须为True

如果obj是一个类或类型,issubclass(obj,type)必须返回True

相关文章

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • 总结.Net基础知识——献给即将入坑的同行们(一期)

    什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 通俗...

  • 面向对象基础

    面向对象编程包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程实现(OOP) 面向对象思想...

  • 20-OOP类与对象

    面向对象 Object Oriented 学习面向对象:XXOO 面向对象的学习: 面向过程和面向对象的区别: 面...

  • JavaScript面向对象核心知识归纳

    面向对象 概念 面向对象就是使用对象。面向对象开发就是使用对象开发。 面向过程就是用过程的方式进行开发。面向对象是...

  • 面向对象(未完成)

    面向对象 标签(空格分隔): 面向对象 第一章:面向对象(上) 什么叫面向对象 面向过程、面向对象、两者区别 构造...

  • 面向对象:创建对象&继承

    博客内容:什么是面向对象为什么要面向对象面向对象编程的特性和原则理解对象属性创建对象继承 什么是面向对象 面向对象...

  • 面向对象

    了解什么是面向对象 首先,我们学习面向对象,要了解什么是面向对象,面向对象的重要概念:类,对象。 面向对象提出的这...

  • 面向对象的三大基本特征和五大设计原则

    1、面向对象概念 1.1、理解面向对象 面向对象是相对面向过程而言; 面向对象和面向过程都是一种思想; 面向过程:...

网友评论

      本文标题:面向对象

      本文链接:https://www.haomeiwen.com/subject/micspttx.html