staticmethod和classmethod区别
2022/2/19 23:15:12
本文主要是介绍staticmethod和classmethod区别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
0x00 staticmethod和classmethod区别
class A(object): def foo(self, x): print(f"executing foo({self}, {x})") @classmethod def class_foo(cls, x): print(f"executing class_foo({cls}, {x})") @staticmethod def static_foo(x): print(f"executing static_foo({x})") a = A()
Below is the usual way an object instance calls a method. The object instance, a, is implicitly passed as the first argument. a.foo(1) # executing foo(<__main__.A object at 0xb7dbef0c>, 1) With classmethods, the class of the object instance is implicitly passed as the first argument instead of self. a.class_foo(1) # executing class_foo(<class '__main__.A'>, 1) You can also call class_foo using the class. In fact, if you define something to be a classmethod, it is probably because you intend to call it from the class rather than from a class instance. A.foo(1) would have raised a TypeError, but A.class_foo(1) works just fine: A.class_foo(1) # executing class_foo(<class '__main__.A'>, 1) One use people have found for class methods is to create inheritable alternative constructors. With staticmethods, neither self (the object instance) nor cls (the class) is implicitly passed as the first argument. They behave like plain functions except that you can call them from an instance or the class: a.static_foo(1) # executing static_foo(1) A.static_foo('hi') # executing static_foo(hi) Staticmethods are used to group functions which have some logical connection with a class to the class.
0x03 参考链接
Difference between staticmethod and classmethod
这篇关于staticmethod和classmethod区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11国产医疗级心电ECG采集处理模块
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南