类的普通方法与@classmethod @staticmethod的区别
class A(object):
'''
#通过类名可以单独访问此方法 @classmethod 类方法,属于类!
#通过类名可以单独访问此方法 @staticmethod ,该方法和外部的方法一样。将外部方法集成到此类中'''
# @classmethod修饰的方法class_foo()需要通过cls参数传递当前类对象。@staticmethod修饰的方法定义与普通函数是一样的。
def __init__(self,m):
self.m=m
self.foo('我为参数')# 在类中 普通方法的调用 #普通的类方法foo()需要通过self参数隐式的传递当前类对象的实例。
self.class_foo(44)
self.static_foo(55)
def foo(self, x):
self.m=2
print("执行方法foo(%s)" % (x))
print('我是类对象整体self:', self)
@classmethod # 绑定A,通过类名调用,不用实例化直接调用
def class_foo(self, x): #cls相当于self,必须有,但不是参数
print("执行方法class_foo(%s)" % (x))
#print('cls:', cls)
@staticmethod #@staticmethod修饰的方法函数与普通的类外函数,@staticmethod是把函