title: Return self in class method - is this good approach?
body: <p>I have a class like below</p>
  
  <pre><code>class TestClass(object):
  
      def __init__(self, data):
              self.data = data
  
      def method_a(self, data):
              self.data += data/2
              return self
  
      def method_b(self, data):
              self.data += data
              return self
  
      def method_c(self, data):
              self.data -= data
              return self
  </code></pre>
  
  <p>Every method returns self. I wrote it that way to be albe to call few metohds in a chain, ie. <code>object.method_a(10).method_b(12).method_c(11)</code>. I was told that <code>return self</code> in method doesn't return current object, but creates new one. Is it really how it works? Is it good practice to use <code>return self</code> in python methods?</p>