@staticmethod怎么用?

早上起来写个小demo, 类中写了个方法, pycharm给这个方法加上了莫名其妙的波浪线, 对于一个有代码洁癖的人来说, 完全不能忍, 来看看为什么.

问题重现

pycharm的提示

上面说了, 这是一个类中的方法,

然后看到了pycharm的友情提示, 这才发现 

这个提示的意思就是说, 这个add方法可能是一个static的. 然后我就明白了, 因为这个方法中没有用到对象的资源

@staticmethod的使用

上面得到的结论就是在方法中没有引用对象的资源, 所以pycharm建议我把这个方法改为静态方法, 也就是加上@staticmethod装饰器

那么@staticmethod起到了一个什么样的作用呢?

一般在写一个方法的时候, 默认会接受一个self的形参, 但是在调用这个方法的使用可能并没有传递任何一个参数, 

这个self就是你使用对象调用方法的那个对象本身, 

要是将这个方法改为一个静态的方法, 就不会有self

总结

当某个方法不需要用到对象中的任何资源,将这个方法改为一个静态方法, 加一个@staticmethod

加上之后, 这个方法就和普通的函数没有什么区别了, 只不过写在了一个类中, 可以使用这个类的对象调用,

也可以使用类直接调用, 简而言之, 写在类中的函数, 我是这么认为的..

 

posted @ 2018-05-25 09:48  王剑威  阅读(12991)  评论(4编辑  收藏  举报