我已经研究了好几个小时,并没有找到对“自我”的正确解释,并且它出现在我观看的每个教程/蟒蛇视频中......请解释一下,就像你向一个白痴一样解释它,继承人示例代码,我不明白为什么你会使用'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()
答案 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
本身没有定义或关键字。它只是说,“任何实例方法都将作为第一个参数发送自己的上下文”。