如何装饰一个类?
为一个类通过装饰,增加一些类属性。
之所以能够装饰,本质上是为类对象动态的添加了一个属性,而这个标识符My指向这个类对象。
def sethu(name):
def wrapper(self):
self.NAMES=name
#print(self)
return self
#print(wrapper)
return wrapper
@sethu(‘xiao hua‘)
class My:
pass
print(My.__dict__)
普通方法本身都是类的属性,第一个参数必须是self,而self必须指向一个对象,也就是类必须实例化之后,由实例来调用这个方法。
类方法@classmethod

class Xi:
aha="类属性"
def foo(self):
print("foo")
def bar():
print("bar")
@classmethod
def xy(cls):#类方法
print(cls.aha)
@staticmethod
def jing():#静态方法
print("jing")
a=Xi()
print(a.foo())
Xi.bar()
#a.bar()#报错TypeError: bar() takes 0 positional arguments but 1 was given
print(Xi.__dict__)
Xi.xy()
a.xy()#a.__class__.xy()
Xi.jing()
a.jing()
原文:https://www.cnblogs.com/canglongdao/p/13348245.html