Python - 向新手解释自我

时间:2013-11-19 20:38:56

标签: python-2.7

我已经研究了好几个小时,并没有找到对“自我”的正确解释,并且它出现在我观看的每个教程/蟒蛇视频中......请解释一下,就像你向一个白痴一样解释它,继承人示例代码,我不明白为什么你会使用'self',它有什么用呢?我想说我知道相当多的蟒蛇,但我无法弄清楚这个'自我',解释赞赏! :)

class className:
    def createName(self, name):
        self.name = name #Whats this 'self' referring to?
    def sayName(self):
        print 'hello %s' % self.name

testing=className()
testing.createName('test')
testing.sayName()

1 个答案:

答案 0 :(得分:1)

self是python中内省/反射的“廉价”方式。在某些方面,它类似于Java的this。因此,它基本上是一个类的实例引用其成员和属性的方式。

我确信有更多技术方法可以解释它,但我发现这对于来自其他编程语言的人来说很有用。

当我说廉价时,我的意思是它基于协议/惯例而不是内部。以下面的类定义为例:

class Friend(object):
    uno = 1
    dos = 2
    def __init__(s):
        s.tres = 3

    def print_it(s):
        print 'Numbers %s, %s, %s' % (s.uno, s.dos, s.tres)

这是一个合法的类,可以像python中的任何其他类一样使用。所以self本身没有定义或关键字。它只是说,“任何实例方法都将作为第一个参数发送自己的上下文”。