您的位置:首页 > 编程语言 > Python开发

深入理解python之self

2015-05-26 15:43 411 查看
首先明确的是self只有在类的方法中才会有,独立的函数或方法是不必带有self的。self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。

self名称不是必须的,在python中self不是关键词,你可以定义成a或b或其它名字都可以,但是约定成俗,不要搞另类,大家会不明白的。下例中将self改为myname一样没有错误:

1 class Person:
2           def _init_(myname,name):
3                    myname.name=name
4           def sayhello(myname):
5                    print 'My name is:',myname.name
6 p=Person('Bill')
7 print p


self指的是类实例对象本身(注意:不是类本身)。

1 class Person:
2          def _init_(self,name):
3                   self.name=name
4          def sayhello(self):
5                   print 'My name is:',self.name
6 p=Person('Bill')
7 print p


在上述例子中,
self
指向Person的实例p。
为什么不是指向类本身呢,如下例子:


1 class Person:
2          def _init_(self,name):
3                   self.name=name
4          def sayhello(self):
5                   print 'My name is:',self.name
6 p=Person('Bill')
7 p1 = Person('Apple')
8 print p


如果self指向类本身,那么当有多个实例对象时,self指向哪一个呢?

人生有限,要聚集你的精力到一件事情上,做到最好!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python self