整理自小甲鱼鱼C论坛
对象 = 属性 + 方法
代码示例:
class Turtle: |
实例(instance)与实例对象(instance object)
上面代码定义了对象的属性(特征)以及方法(行动),但还不是一个完整的对象,将**定义的这些称为类(class)**。
需要使用类来创建一个真正的对象,这个对象就称为这个类的一个实例(instance), 也称为**实例对象(instance object)**。
如以下代码:
tt = Turtle() # 这里注意类要以大写字母开头 |
类名约定以答谢字母开头,函数用小写字母开头。
赋值本身不是必需的,但如果没有把创建好的实例对象赋值给一个变量,那这个实例对象就没办法使用,因为没有任何引用指向这个实例,最终会被垃圾收集机制回收。
代码如下:
tt.climb() |
python面向对象编程的三个要素
第一个要素,封装
对象封装了属性,也就是封装了变量。也封装了方法,也就是函数。并成为了一个独立性的模块。
第二个要素,多态
不同对象对于不同的方法响应不同的行动。
如下代码:
class A: |
虽然行动名称相同(fun(self)),但由于对象的不同,会触发不同的行动。
第三个要素, 继承
子类自动共享父类之间数据和方法的机制。
如下代码:
class Mylist(list): # 这里Mylist 继承了list的方法 |
课后练习
1.函数和方法有什么区别?
函数和方法几乎完全一样,但方法默认有一个self参数。
2.按要求定义矩形类并生成实例对象
属性:长,宽
方法:设置长和宽 setRect(self),获得长和宽 getRect(self),获得面积 getArea(self)
class Rect: |