title: How to return the same class object in Python
body: <p>It is a basic question.
  I have written the following code:</p>
  <pre><code>class Point:
      def __init__(self,x=0,y=0):
          self.x=x
          self.y=y
      def __str__(self):
          return '({0} , {1})'.format(self.x,self.y)
      def reflect_x(self):
          return Point(self.x,-self.y)
      
  p1=Point(3,4)
  p2=p1.reflect_x
  
  print(str(p1),str(p2))
  print(type(p1),type(p2))
  </code></pre>
  <p>Here type of <code>p1</code> and type of <code>p2</code> are different. I just want <code>p2</code> as a point which is the reflected point of <code>p1</code> from x-axis. How can I do it?</p>