當我讀到這個tutorial約tkinter
爲我在Python中的GUI第一步,我意識到在__init__
函數內部調用一個類函數。爲什麼在__init__中調用類函數時必須聲明自己?
我想了解,在__init__
函數中調用類函數時,爲什麼要聲明self.class_function()
?
我發現下面這個答案,這只是說,它必須調用self.class_function
而不是class_function
this問題,但不提供有關爲什麼必須這樣做的任何概念或解釋:
class MyClass():
def __init__(self, filename):
self.filename = filename
self.stat1 = None
self.stat2 = None
self.stat3 = None
self.stat4 = None
self.stat5 = None
self.parse_file()
def parse_file(self):
#do some parsing
self.stat1 = result_from_parse1
self.stat2 = result_from_parse2
self.stat3 = result_from_parse3
self.stat4 = result_from_parse4
self.stat5 = result_from_parse5
你必須調用類函數時使用的自我。因爲它有助於確定函數如何表現特定對象。它也有助於繼承。你可以在哪裏改變或重寫基類函數。此外,使用靜態方法的事實。你必須提供所有的實例信息給靜態函數,但是關於與對象關聯的私有類變量呢?你將如何將它們提供給靜態函數,這將是一種骯髒的習慣。 –
您的示例不包含類方法。 'parse_file'是一個實例方法。 –
如果你願意,你也可以稱它爲'MyClass.parse_file(self)' –