title: Python inheritance returns attribute error
body: <p>Just starting out Python, i'm a fan of Derek Banas and have been following a tutorial and I'm stuck with a bit of code.</p>
  
  <pre><code>class Dog(Animal):
      __owner = ""
  
      def __init__(self, name, height, weight, sound, owner):
          self.__owner = owner
          super(Dog, self).__init__(name, height, weight, sound)
  
      def set_owner(self, owner):
          self.__owner = owner
  
      def get_owner(self):
          return self.__owner
  
      def get_type(self):
          print("Dog")
  
      def tostring(self):
          return "{} is {} cm tall and {} kilograms and say {} His owner is {}".format(self.__name,
                                                                                       self.__height,
                                                                                       self.__weight,
                                                                                       self.__sound,
                                                                                       self.__owner)
  
      def multiple_sounds(self, how_many=None):
          if how_many is None:
              print(self.get_sound())
          else:
              print(self.get_sound() * how_many)
  
  spot = Dog("Spot", 53, 27, "Ruff", "Seb")
  
  print(spot.tostring())
  </code></pre>
  
  <p>And i'm receiving the following error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "G:/JetBrains/PyCharm Community Edition 4.5.4/PyCharm Projects/Testing 123/testing objects.py", line 87, in &lt;module&gt;
      print(spot.tostring())
    File "G:/JetBrains/PyCharm Community Edition 4.5.4/PyCharm Projects/Testing 123/testing objects.py", line 73, in tostring
      return "{} is {} cm tall and {} kilograms and say {} His owner is {}".format(self.__name,
  AttributeError: 'Dog' object has no attribute '_Dog__name'
  </code></pre>
  
  <p>As I've previously transferred from programming with vb, the indentation for the format of the 'tostring' method baffles me a little bit. I even tried putting it all into one line and it still doesn't recognize the inherited attribute '__name' from the class Animal.</p>
  
  <p>Help would be appreciated.</p>
  
  <p>Edit:</p>
  
  <p>It might be worth mentioning that i'm using Pycharm to write all this in.</p>
  
  <p>Also here's the Animal class</p>
  
  <pre><code>class Animal:
      __name = ""
      __height = 0
      __weight = 0
      __sound = 0
  
      def __init__(self, name, height, weight, sound):
          self.__name = name
          self.__height = height
          self.__weight = weight
          self.__sound = sound
  
      def set_name(self, name):
          self.__name = name
  
      def set_height(self, height):
          self.__height = height
  
      def set_weight(self, weight):
          self.__weight = weight
  
      def set_sound(self, sound):
          self.__sound = sound
  
      def get_name(self):
          return self.__name
  
      def get_height(self):
          return self.__height
  
      def get_weight(self):
          return self.__weight
  
      def get_sound(self):
          return self.__sound
  
      def get_type(self):
          print("Animal")
  
      def tostring(self):
          return "{} is {} cm tall and {} kilograms and say {}".format(self.__name,
                                                                       self.__height,
                                                                       self.__weight,
                                                                       self.__sound)
  </code></pre>