早上起來寫個小demo, 類中寫了個方法, pycharm給這個方法加上了莫名其妙的波浪線, 對於一個有代碼潔癖的人來說, 完全不能忍, 來看看為什么.
問題重現
pycharm的提示
上面說了, 這是一個類中的方法,
然后看到了pycharm的友情提示, 這才發現
這個提示的意思就是說, 這個add方法可能是一個static的. 然后我就明白了, 因為這個方法中沒有用到對象的資源
@staticmethod的使用
上面得到的結論就是在方法中沒有引用對象的資源, 所以pycharm建議我把這個方法改為靜態方法, 也就是加上@staticmethod裝飾器
那么@staticmethod起到了一個什么樣的作用呢?
一般在寫一個方法的時候, 默認會接受一個self的形參, 但是在調用這個方法的使用可能並沒有傳遞任何一個參數,
這個self就是你使用對象調用方法的那個對象本身,
要是將這個方法改為一個靜態的方法, 就不會有self
總結
當某個方法不需要用到對象中的任何資源,將這個方法改為一個靜態方法, 加一個@staticmethod
加上之后, 這個方法就和普通的函數沒有什么區別了, 只不過寫在了一個類中, 可以使用這個類的對象調用,
也可以使用類直接調用, 簡而言之, 寫在類中的函數, 我是這么認為的..