Python中@staticmethod和@classmethod的区别【面试题详解】

今天爱分享给大家带来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,转载请注明出处。
0
农民的追求3.75优化版[PC+安卓/1.98G]Peasant's Quest [v3.75] [Tinkerer] [欧美RPG/AI汉化/作弊]
农民的追求3.75优化版[PC+安卓/1.98G]Peasant's Quest [v3.75] [Tinkerer] [欧美RPG/AI汉化/作弊]
1分钟前 有人购买 去瞅瞅看

站点公告

显示验证码
没有账号?注册  忘记密码?