python 6 面向对象
摘自: http://www.cnblogs.com/known/archive/2010/09/04/1818231.html
前面提到的操作函数和语句块是传统的面向过程编程,
通常,编写大型程序, 通常采用面向对象编程
类 和 对象 是面向对象编程的主要两个方面,
类,创建一个新类型,
对象,是类的实例
python没有 值类型 和 引用类型之分, 它把所有事物统统看做是类,
类使用 class关键字来创建
1. self
类的方法和普通的函数只有一个特别的区别————它们必须有一个额外的第一参数名称, (类(class)的 function 里面 必须有(self) 这个parameter)
但是在调用这个方法的时候你不为这个参数赋值, python会提供这个值, 这个特别的变量指对象本身,按照惯例它的名称是self
假如你有一个类称为 MyClass 和这个类的一个实例 MyObject, 当你调用这个对象的方法 MyObject.method(arg1, arg2)的时候
这会由python自动转化为MyClass.method(MyObject, args1, arg2) ———— 这就是self的原理
2. 类
3. 方法
类/对象可以拥有像函数一样的方法,这些方法与函数的区别只是一个额外的self变量。
look at the "self" parameter
4. __init__ 方法
在Python的类中有很多方法的名字有特殊的重要意义, 像 __init__, 类似于构造函数。
__init__ 方法在类的一个对象呗建立的时候,马上运行。 这个方法可以用来对你的对象做一些你希望的初始化
5. 域
python 有两种类型的域 类的变量 和对象的变量
类的变量: 有一个类的所有对象共享使用, 只有一个类变量的copy, 所以当某个对象对类的变量做了改动的时候,这个变动会反映到所有其他的实例上
对象的变量; 由每个对象拥有, 因此每个对象有自己对这个域的一份copy,
6. 继承