Magic methods in python are really magical. For example:
class DynMember:
def __getattr__(self, name: str):
def fn(self, **kwargs):
print(kwargs)
setattr(self.__class__, name, fn)
return lambda **x: fn(self, **x)
if __name__ == "__main__":
d = DynMember()
d.someFn(title="Greeting", description="Hello world!") # outputs {'title': 'Greeting', 'description': 'Hello world!'}
d.someFn(k1="value 1", k2="value 2") # outputs {'k1': 'value 1', 'k2': 'value 2'}
There was no someFn in DynMember class. The method is set on the class using __getattr__ magic method and setattr builtin method. These methods are really powerful and make classes do wonders in python. (have written a html generator only in 40 lines of code). How to achieve something similar in C++?