Why output is:
<class 'method'>                                                                                                                    
<class 'method'>                                                                                                                        
<class 'function'>                                                                                                                      
<class 'function'>
not
<class 'method'>                                                                                                                         
<class 'method'>
<class 'method'>                                                                                                                                <class 'method'>
Code
class A:
    def ftest(self, a, *args):
        b = args[0]
        self.r = a+b
f_ref = ftest
f_dict = {
    'ftest': ftest,
    'f_ref': f_ref
}
inst = A()
print(type(inst.ftest))
print(type(inst.f_ref))
print(type(inst.f_dict['ftest']))
print(type(inst.f_dict['f_ref']))
I've made a funtion routing cmd args and type 'function' instead 'method' causes exceptions (I'm not passing self, I don't know whether variable is function or function pointing to method).
 
    