title: Python object @property
body: <p>I'm trying to create a point class which defines a property called "coordinate".  However, it's not behaving like I'd expect and I can't figure out why.  </p>
  
  <pre><code>class Point:
      def __init__(self, coord=None):
          self.x = coord[0]
          self.y = coord[1]
  
      @property
      def coordinate(self):
          return (self.x, self.y)
  
      @coordinate.setter
      def coordinate(self, value):
          self.x = value[0]
          self.y = value[1]
  
  p = Point((0,0))
  p.coordinate = (1,2)
  
  &gt;&gt;&gt; p.x
  0
  &gt;&gt;&gt; p.y
  0
  &gt;&gt;&gt; p.coordinate
  (1, 2)
  </code></pre>
  
  <p>It seems that p.x and p.y are not getting set for some reason, even though the setter "should" set those values.  Anybody know why this is?  </p>