code: def _wrap_attr(self, attrs, context=None):
          
          for attr in attrs:
              if isinstance(attr, UnboundMethod):
                  if _is_property(attr):
                      yield from attr.infer_call_result(self, context)
                  else:
                      yield BoundMethod(attr, self)
              elif hasattr(attr, "name") and attr.name == "<lambda>":
                  if attr.args.args and attr.args.args[0].name == "self":
                      yield BoundMethod(attr, self)
                      continue
                  yield attr
              else:
                  yield attr
docs: wrap bound methods of attrs in a InstanceMethod proxies