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


概念

对于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)

对象实例也可以作为其他函数调用的参数



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值