title: Class variable not updating
body: <p>I have the following basic class involving a circle.  My question is, when I directly update the diameter with c.diameter(10), how come the radius is updated to 5?  As the output shows, it is still at 4:</p>
  
  <pre><code>from math import pi
  
  
  class Circle:
      def __init__(self, radius=1):
          self.radius = radius
          self.diameter = self.radius * 2
  
      def diameter(self, diameter):
          self.diameter = diameter
          self.radius = self.diameter / 2
          return self.radius, self.diameter
  
      def area(self):
          return self.radius ** 2 * pi
  
  
  c = Circle(3)
  print("c.radius:", c.radius)
  print("c.area():", c.area())
  c.radius = 4  # change radius
  print("c.radius:", c.radius)
  print("c.area():", c.area())
  c.diameter = 10  # change diameter
  print("c.diameter:", c.diameter)
  print("c.radius:", c.radius)
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>c.radius: 3
  c.area(): 28.274333882308138
  c.radius: 4
  c.area(): 50.26548245743669
  c.diameter: 10
  c.radius: 4   &lt;--- Radius should be 5, since the Radius is Diameter / 2
  </code></pre>