1. self
类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是self
。Python中的self
等价于C++中的self
指针和Java、C#中的this
参考。
你一定很奇怪Python如何给self
赋值以及为何你不需要给它赋值。举一个例子会使此变得清晰。假如你有一个类称为MyClass
和这个类的一个实例MyObject
。当你调用这个对象的方法MyObject.method(arg1, arg2)
的时候,这会由Python自动转为MyClass.method(MyObject, arg1, arg2)
——这就是self
的原理了。
2. 使用对象的方法
#! /apps/android/python2.6/bin/python
class person:
def sayHi(self): //对象的方法,需要默认参数self
print 'we are friends'
p = person() //new 一个新对象出来
p.sayHi() // 调用类得方法,在调用时,没有任何参数,而在方法定义时,有参数self!
3. __init__方法
在Python的类中有很多方法的名字有特殊的重要意义。现在我们将学习__init__
方法的意义。
__init__
方法在类的一个对象被建立时,马上运行。这个方法可以用来对你的对象做一些你希望的初始化 。__init__
方法类似于C++、C#和Java中的构造函数。
#! /apps/android/python2.6/bin/python
class person:
def __init__(self, _name): // init方法就是python的构造函数
self.name = _name // _name是类在构造时,给的默认参数,而self.name是类自己定义的一个变量,在其他方法可以调用到该值
def sayHi(self):
print 'we are friends', self.name
p = person('Jiajia')
p.sayHi()