python中,类里面的方法的参数self是什么意思呢?我没学过其他编程,python是第一次学
最好通俗点,举个例子,谢谢:em02: 愣是没看懂那个self:class people:
__name = 'jack'
__age = 12
def getName(self):
return self.__name
def getAge(self):
return self.__age
p = people()
print p.getName(),p.getAge() 本帖最后由 icymirror 于 2014-08-18 22:01 编辑
如果你有如下的类:class Cat(object):
def __init__(self, color):
self.color = color
@property
def color(self):
return self.color然后,你有两个变量:
blackCat = Cat("black")
whiteCat = Cat("white")
这时,当你想获得某个cat的颜色时,可以用:
blackCat.color
或者
whiteCat.color
而这个self.在函数里面,就是针对当前的实例,而不是针对类。
所以,才会blackCat得到“black”,whiteCat得到"white",而不会出现不知道是什么颜色的问题。 是这样的意思吗?
例子:
class Person:
def sayHi(self):
print 'Hello, how are you?'
p = Person()
p.sayHi()
# This short example can also be written as Person().sayHi()
解释:
self就是单词的本意,代表该class自身,你在class里定义任意一个带self的变量,例如self.a,那么在该class的任何函数内都可以使用self.a变量.
回复 3# icymirror
回复 4# wto4883204
self指的不是类,而是类的实例。
千万不要混了。
通常情况下:数据内容是各个实例自己管自己的,方法是放在公共区域的。
所以,一般self访问数据是各自的数据,访问方法时,系统给找出在公共区域的函数来让你调用,于是有self.FunctionName()这样的调用,但是它还是通过实例来走到公共区域的。
并不是说这个self就是类的访问用的,它是类的实例用来访问对应的内容的变量。在其它编程语言里,就类似this指针或者this变量的存在。
页:
[1]