Static method 是什麼?
工廠製造物件的時候,大部分的絕招都會和物件有關,但有時也會需要一些不論哪個物件做,結果都一樣的絕招,所以這時候製作出來與物件無關的絕招,就會稱之為 Static method。
今天我想製作一個不論哪個物件,呼叫時都一樣會say hi 的絕招,那因為這個絕招和物件無關,所以我這邊想讓他不要透由物件來呼叫~
首先我們一樣幫他做一個 say_hi 的 method
但會發現他這邊告訴我們,你的 method 沒有用到物件耶,是 static 嗎?
所以製作與物件無關的 method 時,他會提醒我們要把這個絕招拉到和 class 同一個階級,所以要把self物件拿掉,因為有加 self 就代表一定要透由物件來製作~
但我們這邊把物件拿掉時,又會出現 Error 說我們這樣少了 self 不對喔!因為他會優先認為需要有 self 來承接物件,所以我們此時就需要透過 @staticmethod 告訴電腦說,我們設計的這個 method 是與物件無關的,請讓我們通過~
這樣就能讓電腦知道這個絕招和 class 平級,可以被 class 呼叫來使用囉!
Tips:工廠不做物件的事情,但工廠可以做和物件無關的事情
常見的 Method 分類
Instance method:這個絕招會因為物件不同而不同
Static method:每一個物件的表現都長一樣
stanCode標準程式教育機構-你也值得更好的教育
Facebook|https://www.facebook.com/stancode.tw
Instagram|https://www.instagram.com/stancode_tw/
YouTube|https://www.youtube.com/@stancode7228/videos
Website|https://www.stancode.tw/
TikTok|https://www.tiktok.com/@standardcoding
