0

Is there a dunder method than triggered when any of the function under a specific class (including the function from its parents) is called?

Let's look at a small example:

class SpecialClass(ParentClass):
    def NormalFunction1(self):
        print('Function 1.')

    def NormalFunction2(self):
        print('Function 2')

    def SpecialFunction(self):
        print('Triggered.')

cls = SpecialClass()
cls.NormalFunction1()
cls.NormalFunction2()

The output I want is:

Triggered.
Function 1.
Triggered.
Function 2.

Thanks.

1 Answers1

0

Problem solved! Thanks to @inspectorG4dget!

class SpecialClass():
    class SubClass():
        def NormalFunction1(self):
            print('Function 1.')

        def NormalFunction2(self):
            print('Function 2')

    def __getattribute__(self, item):
        if item == 'SubClass':
            return object.__getattribute__(self, item)
        print('Triggered.')
        return self.SubClass().__getattribute__(item)

cls = SpecialClass()
cls.NormalFunction1()
cls.NormalFunction2()