多态:
意味着对不同类的对象使用相同的操作。
封装:
对外部世界隐藏对象的工作细节
继承:
以通用的类为基础建立专门的类对象
方法(method):绑定到对象特性上的函数
任何不知道对象到底是什么类型,又要对对象做点什么的时候,都会用到多态,这不仅限于方法,很多内建函数都有多态的性质,考虑下面的例子
>>> 1+2
3
>>> 'Fish' + 'license'
'Fishlicense'
继承是另外一种偷懒的方法,程序员不想把同一段代码输入好几次,之前使用的函数,避免了这种情况。如果已经有一个类了,而又想把旧类的代码复制过去。
_mataclass_ = type
class Person:
def setName(self,name):
self.name = name
def getName(self):
return self.name
def greet(self):
print "Hello world! I'm %s" % self.name
>>> foo = Person()
>>> foo.setName('bob')
>>> foo.greet()
Hello world! I'm bob
>>> foo.name
好了,例子一步了然,应该能说明self的用处。foo将自己作为第一个参数传入函数中,——因此
self参数事实上正是方法和函数的区别,方法(更专业一点可以称为绑定方法)将它们的第一个参数绑定到所属的实例上,因此你无需显示该参数。当然也可以将特性绑定到一个普通函数上,这样就不会有特殊的self参数了: