title: decorator inside class with arguments for function that accept arguments
body: <p>I've found way to have decorator in class, to have decorator with args, to decorate function with args. But I can't make all of it work together. How can I make this work ?</p>
  
  <pre><code>class Printer():
      """
      Print thing with my ESCPOS printer
      """
      def text(self, text):
          with open('/dev/usb/lp0', 'wb') as lp0:
              lp0.write(text.encode('cp437'))
              lp0.write(b'\n')
      def command(self, command):
          with open('/dev/usb/lp0', 'wb') as lp0:
              lp0.write(command)
              lp0.write(b'\n')
      def style(command_before, command_after):
          """
          Send a command before and a command after
          """
          def decorator(func):
              def wrapper(self, text):
                  print(self)
                  print(text)
                  self.command(command_before)
                  func(text)
                  self.command(command_after)
              return wrapper
          return decorator
      @style((b'\x1D\x42\x31'), (b'\x1D\x42\x32')) #print white on black
      @style((b'\x1D\x21\x34'), (b'\x1D\y21\x00')) #print bigger
      def title(self, title_text):
          self.text(title_text)
  </code></pre>
  
  <p>then I could use it that way:</p>
  
  <pre><code>p = Printer()
  p.title('This is an awesome TITLE!!')
  </code></pre>
  
  <p>This give me a "<em>TypeError: wrapper() missing 1 required positional argument: 'text'</em>"</p>
  
  <p>But I just fail to get it :/</p>