关于自我的澄清

时间:2014-03-06 15:53:13

标签: python

在何时需要使用self.variable_name等符号的方法?例如,我知道在构造函数方法中它需要像

class A(object):
     def __init__(self, name):
     self.name = name

为了给它一个实例变量。但是,在其他方法呢?我什么时候需要将self放在变量名前面?什么时候可以使用变量名呢?

2 个答案:

答案 0 :(得分:1)

您必须始终将self作为实例方法的第一个参数。这是您用来访问实例变量的内容。

它与其他语言中的this类似,但不同之处在于它是必需的,而其他语言通常会在范围内包含实例变量。

答案 1 :(得分:0)

每当您想要访问A类特定对象的属性时。例如:

def get_name(self): # here, whenever this method is called, it expects 'self'.  
    return self.name

在类范围之外调用此方法时,python隐式传递 self

example = A('d_rez')
example.get_name()   # no arguments are passed, but self is passed implicitly to 
               # have access to all its attributes!

所以回答你的问题:每当你在一个类中定义一个方法时,你需要传递self,这通常是因为涉及一些属性。否则,它可能只是在类外定义的静态函数,如果它不属于类A的特定实例。