How to replace __str__ for a function

后端 未结 4 1172
萌比男神i
萌比男神i 2021-01-02 09:58

I want to change the string representation of a python function to be just the function name.

Eg for some function

def blah(x):
 ...
<
4条回答
  •  一个人的身影
    2021-01-02 10:41

    As Joran said:

    class NamedFunction:
        def __init__(self, name, f):
            self.f = f
            self.name = name
    
        def __call__(self, *args, **kwargs):
            return self.f(*args, **kwargs)
    
        def __str__(self):
            return self.name
    
    
    f = NamedFunction("lambda: 'blah'", lambda: 'blah')
    print(f())
    print(f)
    

提交回复
热议问题