#每日一题#
Python中@staticmethod和@classmethod的区别
参考答案:
首先说一下什么是普通方法,普通方法需要传递参数,类调用的时默认会将类的实例对象传进去。
@staticmethod装饰的静态方法与普通函数相同:实例和类均可调用,但是不需要传递默认的参数进去
@classmethod装饰的类方法:也需要参数,使用时需要将调用的类传进去
列如:
class A:
a=1
def BWF(self):
print(“51testing”)
@staticmethod
def static_51testing():
print(“static_51testing”)
print(A.a)
@classmethod
def class_51testing(cls):
print(“class_51testing”)
print (cls.a)
cls().BWF()
if name == ‘main’:
A.static_51testing()
A.class_51testing()