的方法澄清時是有必要使用符號像self.variable_name?例如,我知道在構造方法中它需要像關於自我
class A(object):
def __init__(self, name):
self.name = name
爲了給它一個實例變量。但是,其他方法呢?什麼時候我需要把自己在變量名的前面,什麼時候可以只使用一個變量名?
的方法澄清時是有必要使用符號像self.variable_name?例如,我知道在構造方法中它需要像關於自我
class A(object):
def __init__(self, name):
self.name = name
爲了給它一個實例變量。但是,其他方法呢?什麼時候我需要把自己在變量名的前面,什麼時候可以只使用一個變量名?
你必須始終把self
作爲實例方法的第一個參數。這是你用來訪問實例變量的東西。
,它是必需的,而其他語言中往往有實例變量的範圍是類似於其他語言this
,但不同的。
無論你是想獲得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級
井的特定實例,而不是*始終*(認爲'@ staticmethod','@ classmethod') – mgilson