fork download
  1. import inspect
  2.  
  3. def print_id(obj):
  4. print "{} => {}".format(id(obj), obj)
  5.  
  6. def getmember(obj, name):
  7. #members = dict(inspect.getmembers(obj))
  8. #return members[name]
  9. return [member
  10. for _name, member in inspect.getmembers(obj)
  11. if name == _name][0]
  12.  
  13. class Foo(object):
  14. def bar(self): pass
  15.  
  16. foo = Foo()
  17.  
  18. print_id(foo.bar)
  19. print_id(getattr(foo, 'bar'))
  20. print_id(getmember(foo, 'bar'))
  21.  
Success #stdin #stdout 0.15s 11264KB
stdin
Standard input is empty
stdout
3074574772 => <bound method Foo.bar of <__main__.Foo object at 0xb74337cc>>
3074574772 => <bound method Foo.bar of <__main__.Foo object at 0xb74337cc>>
3074574772 => <bound method Foo.bar of <__main__.Foo object at 0xb74337cc>>