title: Execute function without sending 'self' to it
body: <p>Is that possible to define a function without referencing to <code>self</code> this way?</p>
  
  <pre><code>def myfunc(var_a,var_b)
  </code></pre>
  
  <p>But so that it could also get sender data, like if I defined it like this:</p>
  
  <pre><code>def myfunc(self, var_a,var_b)
  </code></pre>
  
  <p>That <code>self</code> is always the same so it looks a little redundant here always to run a function this way: <code>myfunc(self,'data_a','data_b')</code>. Then I would like to get its data in the function like this <code>sender.fields</code>.</p>
  
  <p><strong>UPDATE:</strong>
  Here is some code to understand better what I mean.
  The class below is used to show a page based on Jinja2 templates engine for users to sign up.</p>
  
  <pre><code>class SignupHandler(webapp.RequestHandler):
      def get(self, *args, **kwargs):
          utils.render_template(self, 'signup.html')
  </code></pre>
  
  <p>And this code below is a <code>render_template</code> that I created as wrapper to Jinja2 functions to use it more conveniently in my project:</p>
  
  <pre><code>def render_template(response, template_name, vars=dict(), is_string=False):
      template_dirs = [os.path.join(root(), 'templates')]
      logging.info(template_dirs[0])
      env = Environment(loader=FileSystemLoader(template_dirs))
      try:
          template = env.get_template(template_name)
      except TemplateNotFound:
          raise TemplateNotFound(template_name)
      content = template.render(vars)
      if is_string:
          return content
      else:
          response.response.out.write(content)
  </code></pre>
  
  <p>As I use this function <code>render_template</code> very often in my project and usually the same way, just with different template files, I wondered if there was a way to get rid of having to call it like I do it now, with <strong>self</strong> as the first argument but still having access to that object.</p>