wto4883204 发表于 2014-08-18 20:42

python中,类里面的方法的参数self是什么意思呢?我没学过其他编程,python是第一次学

最好通俗点,举个例子,谢谢:em02:

wto4883204 发表于 2014-08-18 20:44

愣是没看懂那个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

本帖最后由 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",而不会出现不知道是什么颜色的问题。

wto4883204 发表于 2014-08-19 04:55

是这样的意思吗?
例子:
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


   

icymirror 发表于 2014-08-19 09:45

回复 4# wto4883204
self指的不是类,而是类的实例。
千万不要混了。
通常情况下:数据内容是各个实例自己管自己的,方法是放在公共区域的。
所以,一般self访问数据是各自的数据,访问方法时,系统给找出在公共区域的函数来让你调用,于是有self.FunctionName()这样的调用,但是它还是通过实例来走到公共区域的。
并不是说这个self就是类的访问用的,它是类的实例用来访问对应的内容的变量。在其它编程语言里,就类似this指针或者this变量的存在。
页: [1]
查看完整版本: python中,类里面的方法的参数self是什么意思呢?我没学过其他编程,python是第一次学