code: def patchmethod(*cls, **kwargs):
      
  
      def _patch(fun):
          m = kwargs.pop('name', None) or fun.__name__
          for c in cls:
              setattr(c, m, fun)
              # c.__dict__[m].__doc__ = fun.__doc__
  
      def wrap(fun):
          _patch(fun)
          return fun
  
      return wrap
docs: 클래스 멤버 패치 @patchmethod(Cls1, ..., [name='membername'])
      ex)
      class A(object):
          def __init__(self, data):
              self.data = data
  
      @patchmethod(A)
      def sample(self):
          ''' haha docstrings '''
          print self.data
  
      @patchmethod(A, name='membermethod)
      def sample(self):
          ''' haha docstrings '''
          print self.data
  
      a = A()
      a.sample()