您的位置:首页 > 理论基础

像计算机科学家一样思考python2 笔记 - 类和对象

2013-09-06 18:31 495 查看

概念

对于OOP(Object-oriented programming)面向对象的程序设计,关注的是对象(Object)的建立,对象 将数据和函数放在一起。

一个类大体上相当于一个数据类型,一个用户自定义的复合类型

类的定义:

class new_class_name:

 e.g.

class vsb:

    pass

位置一般放在程序的最前面,import语句之后。

以这种 新定义的数据类型(也就是“类”)所定义的新的 实体 被称为 ‘类型的实例’ 或 ’对象的实例‘ (instances),

类的调用,实例化

建立一个新的实例 称为实例化(instantiation), 由 调用类 来实现。

类, 跟函数一样,可以被调用。 准确的说,每个类自动 提供一个构造器 constructor,用来构造 此类的对象实例,这个构造器 与类 同名,但是功能类似于函数。也就是说 类 vsb 自动提供一个 构造器 vsb(), 创建新的 vsb 类 的 对象实例 时, 就 使用 vsb的构造器 vsb().

例如,我们以上面定义的新类 vsb 来实例化一个 vsb 对象

>>> type(vsb)

<type 'classobj'>

>>> v=vsb()

>>> type(v)

<type 'instance'>

>>>

类的理解

可以将 类 理解为 制造对象的 工厂, 类 本身不是对象实例,但是 类 拥有制造 对象实例的 设备

属性

跟真实世界的 物体(object) 一样,对象实例(object instance) 也有 形态 和 功能, 形态 由 实例中的 数据要素 构成

可以用"."运算符 来向实例中添加新的要素

eg.

>>> v.x = 3

>>> v.y = 4

相当于模块当中的变量,模块当中的变量也成为 属性

初始化方法 和 self

每个 类 都要有一个特殊 的方法 叫做 __init__, 当创建一个新的 对象实例 时, __init__被自动 调用。

作用是 在创建新实例的时候 能够 为 对象实例的属性 设置 初始状态/初始值。

当希望有什么事情是在一个类的对象刚被创建时,就发生/执行/完成的话,就放在__init__里面,比如说,打印一条信息说自己是个刚刚被创建的某类的实例。

self 参数,指的是 类的 对象实例。

++++++++++++++++++++++++     ???    ++++++++++++++++++++++++++

为了给 类 vsb 添加属性,要向 类的定义中 添加 初始化 方法。

class vsb:

    def __init__(self, x=3, y=4):

        self.x = x

        self.y = y

++++++++++++++++++++++++     ???    ++++++++++++++++++++++++++

方法:

方法表现得像个 函数, 但是他是 对象的一部分,跟 对象的属性一样,通过 点运算符“.” 来访问, 当 类被调用时, 初始化方法 被自动调用。

在定义方法的时候,需要有至少一个参数“self”,eg

class vsb:

    def __init__(self, x=3, y =4):

        self.x = x

        self.y = y

    def create (self, cfg, dir):

        pass

    def build(self):

        pass

方法在调用的时候不需 self, e.g.

p = vsb()

p.create(pcfg,pdir)

self 指的是p这个对象实例,即:

p.create(pcfg,pdir) = vsb.create(p,pcfg,pdir)

对象实例也可以作为其他函数调用的参数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: