来源:https://www.cnblogs.com/594504110python/p/10062336.html#commentform
早上起来写个小demo, 类中写了个方法, pycharm给这个方法加上了莫名其妙的波浪线, 对于一个有代码洁癖的人来说, 完全不能忍, 来看看为什么.
问题重现
pycharm的提示
上面说了, 这是一个类中的方法,
然后看到了pycharm的友情提示, 这才发现
这个提示的意思就是说, 这个add方法可能是一个static的. 然后我就明白了, 因为这个方法中没有用到对象的资源
@staticmethod的使用
上面得到的结论就是在方法中没有引用对象的资源, 所以pycharm建议我把这个方法改为静态方法, 也就是加上@staticmethod装饰器
那么@staticmethod起到了一个什么样的作用呢?
一般在写一个方法的时候, 默认会接受一个self的形参, 但是在调用这个方法的使用可能并没有传递任何一个参数,
这个self就是你使用对象调用方法的那个对象本身,
要是将这个方法改为一个静态的方法, 就不会有self
总结
当某个方法不需要用到对象中的任何资源,将这个方法改为一个静态方法, 加一个@staticmethod
加上之后, 这个方法就和普通的函数没有什么区别了, 只不过写在了一个类中, 可以使用这个类的对象调用,
也可以使用类直接调用, 简而言之, 写在类中的函数, 我是这么认为的..