code: def edit(self, title=github.GithubObject.NotSet, body=github.GithubObject.NotSet, state=github.GithubObject.NotSet, base=github.GithubObject.NotSet):
          
          assert title is github.GithubObject.NotSet or isinstance(title, (str, unicode)), title
          assert body is github.GithubObject.NotSet or isinstance(body, (str, unicode)), body
          assert state is github.GithubObject.NotSet or isinstance(state, (str, unicode)), state
          assert base is github.GithubObject.NotSet or isinstance(base, (str, unicode)), base
          post_parameters = dict()
          if title is not github.GithubObject.NotSet:
              post_parameters["title"] = title
          if body is not github.GithubObject.NotSet:
              post_parameters["body"] = body
          if state is not github.GithubObject.NotSet:
              post_parameters["state"] = state
          if base is not github.GithubObject.NotSet:
              post_parameters["base"] = base
          headers, data = self._requester.requestJsonAndCheck(
              "PATCH",
              self.url,
              input=post_parameters
          )
          self._useAttributes(data)
docs: :calls: `PATCH /repos/:owner/:repo/pulls/:number <http://developer.github.com/v3/pulls>`_
          :param title: string
          :param body: string
          :param state: string
          :param base: string
          :rtype: None