python学习之面向对象(与PHP对比)
撰写于
2011-12-08 分类: python 标签:
python
面向对象
面向对象这个词大家肯定不陌生了~~Python就是一门面向对象编程语言,当然也支持面向过程。
简单的说,我们的程序用一些函数和语句来操作数据,这就是面向过程编程,而把某些功能整合在一起、模块化、功能化调用,然后把某一类的这些功能模块结合起来形成一个我们称之为“对象”的东西,这就是面向对象编程了。
上面的叙述可能不是很规范,大致的意思就是了。
类的实例/对象里面通常有变量和函数构成,python把这些变量称为域,函数称为方法,他们俩统称为类的属性。学过其他编程的或多或少对面向对象都有写了解,概念虽然不完全一致,但意思都是相通的。
就和PHP对比吧:
1、定义关键字
PHP和python都是用class定义类,一般类的首字母大写,几乎完全一致。
2、类的一个额外名称:
这个额外名称就是PHP里面的this,python的self,他们不用被定义,默认代表这个类的本身。用法也都差不多,只是形式上的差别:
PHP:this-> Python:self.
3、方法的定义
PHP里面定义方法,也就是自定义函数,和在类外边自定义函数没有区别,而Python要加上一个参数self,必须要的,一般是第一个参数。而在实例化类变成一个对象之后,调用对象里面的方法不用写这个参数,比如:在类里面定义:def addName(self, name){ },那么在实例化之后就直接module.addName(name)这样写。
4、构造函数和析构函数
PHP构造函数__construct(),析构函数__destruct(),Python则是__init__()和__del__()。他们的作用都大同小异,引用的时候初始化一些值,结束后释放一下。
5、类的继承
PHP类的继承:通过extends语句,而Python的继承则不同,子类继承父类,在定义的时候把父类放在一个元组里,例如:
父类:class TestFather:
子类:class TestSon(TestFather):
这个我第一次没看出来,呵呵,琢磨半天怎么继承的,还是学PHP太久了,思维僵硬了。
OK,就总结这么多吧,通过和PHP的对比能使我接受的更快~~
前几天已经把一部很简单的Python教程看完了,今天开始看一部很详细的教程,基础要扎实嘞,继续!GO ON……