@staticmethod怎么用?
2024-10-20 08:27:40
早上起来写个小demo, 类中写了个方法, pycharm给这个方法加上了莫名其妙的波浪线, 对于一个有代码洁癖的人来说, 完全不能忍, 来看看为什么.
问题重现
pycharm的提示
上面说了, 这是一个类中的方法,
然后看到了pycharm的友情提示, 这才发现
这个提示的意思就是说, 这个add方法可能是一个static的. 然后我就明白了, 因为这个方法中没有用到对象的资源
@staticmethod的使用
上面得到的结论就是在方法中没有引用对象的资源, 所以pycharm建议我把这个方法改为静态方法, 也就是加上@staticmethod装饰器
那么@staticmethod起到了一个什么样的作用呢?
一般在写一个方法的时候, 默认会接受一个self的形参, 但是在调用这个方法的使用可能并没有传递任何一个参数,
这个self就是你使用对象调用方法的那个对象本身,
要是将这个方法改为一个静态的方法, 就不会有self
总结
当某个方法不需要用到对象中的任何资源,将这个方法改为一个静态方法, 加一个@staticmethod
加上之后, 这个方法就和普通的函数没有什么区别了, 只不过写在了一个类中, 可以使用这个类的对象调用,
也可以使用类直接调用, 简而言之, 写在类中的函数, 我是这么认为的..
最新文章
- Service实时向Activity传递数据案例
- [原创]WKWebview点击图片查看大图
- [综] PCA降维
- JS性能方面--内存管理及ECMAScript5 Object的新属性方法
- Linq专题之var关键字
- solaris bind 符号未定义
- 【postgresql】创建自增SEQUENCE
- uva 1103
- myeclipse2015不能启动tomcat,提示: Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at local
- 【python之旅】python的基础二
- js 创建html元素 渲染html元素
- [转] (CQRS)命令和查询责任分离架构模式(一) 之 什么是CQRS
- Python入门之函数的介绍/定义/定义类型/函数调用/Return
- 12.Django思维导图
- Javascript高级编程学习笔记(67)—— 事件(11)HTML5事件
- Pandas基础使用
- [转帖]整理:Windows系统下的奇技淫巧大汇总
- leetcode1027
- L1-053 电子汪
- 安装Python3.6.4后,在使用numpy时报错RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88