The decorative function python decorator

python decorator decorative function

Decorative function, before each class is instantiated object call:

def wrapClass(cls):
    def inner(a):
        print('class name:', cls.__name__)
        return cls(a)
    return inner

@wrapClass
class Foo():
    def __init__(self, a):
        self.a = a

    def fun(self):
        print('fun self.a =', self.a)

    def fun2(self):
        print('fun2 self.a = ', self.a)


obj1 = Foo('object 1')
obj1.fun()
obj1.fun2()

print()
obj2 = Foo('object 2')
obj2.fun()
obj2.fun2()

output:

class name: Foo
fun self.a =  object 1
fun2 self.a =  object 1

class name: Foo
fun self.a =  object 2
fun2 self.a =  object 2

Published 134 original articles · won praise 20 · views 60000 +

Guess you like

Origin blog.csdn.net/u011583798/article/details/87802473