the __call__ dunder method of a class is supposed to represent the operator (), correct?
if so, why the following code is not working as expected?
def f():
print("hello world")
f()
>>>hello world
f.__call__ = lambda: print("foo") #replace the call operator
f()
>>>hello world
f.__call__()
>>>foo
something special is happening with <class 'function'>
could someone shine a light on this problem?