2014-03-06 34 views
0

的方法澄清時是有必要使用符號像self.variable_name?例如,我知道在構造方法中它需要像關於自我

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

爲了給它一個實例變量。但是,其他方法呢?什麼時候我需要把自己在變量名的前面,什麼時候可以只使用一個變量名?

回答

1

你必須始終把self作爲實例方法的第一個參數。這是你用來訪問實例變量的東西。

,它是必需的,而其他語言中往往有實例變量的範圍是類似於其他語言this,但不同的。

+0

井的特定實例,而不是*始終*(認爲'@ staticmethod','@ classmethod') – mgilson

0

無論你是想獲得A型的特定對象的屬性,例如:

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

當調用類範圍之外的這種方法,Python有隱式傳遞。

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

因此,要回答你的問題:你需要,只要你定義一個類中的方法傳遞的自我,這通常是因爲涉及一些屬性。否則,它可能只是在類的外部定義的靜態函數,如果它不屬於A級