__call__

class S(type):

    def __call__(self, *args, **kwargs):
        print('S')
        obj = super().__call__(*args, **kwargs)
        return obj


class A:

    def __call__(self, *args, **kwargs):
        print('A的')


class B(A):

    def __call__(self, *args, **kwargs):
        print('B的')


class C(B,metaclass=S):
    pass


q = C()

q()


posted @ 2020-05-19 21:03  小菜鸟是我  阅读(174)  评论(0)    收藏  举报