例如我们定义一个类:
__metaclass__ = 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
在这个类中的每个函数(方法)里都有self,其实,用法是这样的,在调用foo的getName和greet函数时,foo自动将自己作为第一参数传入函数中,既然是自己作为参数,所以,我们就形象的将其命名为self,命名为self的一个好处就是可以不去区分函数的名字,只要是自己就是self。这个变量就是对象自身。
同时,self变量的有无,正是函数与方法的区别,方法(可以叫做绑定方法)将他们的第一个参数绑定到所属的实例上,因此这个参数可以不必提供。所以可以将特性绑定到一个普通的函数上,这样就不会有特殊的self参数了。