今天爱分享给大家带来Python中@staticmethod和@classmethod的区别【面试题详解】,希望能够帮助到大家。
staticmethod,静态方法在调用时,对类及实例一无所知
仅仅是获取传递过来的参数,没有隐含的第一个参数,在Python里基本上用处不大,你完全可以用一个模块函数替换它
classmethod, 在调用时,将会获取到其所在的类,或者类实例,作为其第一个参数
当你想将函数作为一个类工厂时,这非常有用: 第一个参数是类,你可以实例化出对应实例对象,甚至子类对象。
可以观察下 dict.fromkey(),是一个类方法,当子类调用时,返回子类的实例
>>> class DictSubclass(dict):
... def __repr__(self):
... return "DictSubclass"
...
>>> dict.fromkeys("abc")
{'a': None, 'c': None, 'b': None}
>>> DictSubclass.fromkeys("abc")
DictSubclass
>>>
原文链接:https://blog.itblood.com/4518.html,转载请注明出处。

![吊挂模拟器2 -被囚禁的美女机械奸 官方中文步兵版[PC+安卓/330M] [互动SLG/中文/动态]](/wp-content/uploads/replace/2025/07/19/ff21e6f7f1417f360fca06815c2c5e1d.webp)