title: Python printing objects - TypeError: must be str, not Address
body: <p>I have <code>Person</code> and <code>Address</code> classes. Each <code>Person</code> holds an <code>Address</code>. </p>
  
  <p>Code:</p>
  
  <pre><code>class Address: 
      def __init__(self, street, town, city, postcode, country):
          self.street = street
          self.town = town
          self.city = city
          self.postcode = postcode
          self.country = country
  
      def __str__(self):
          return ("\t"   + "Street: " + self.street +
                  "\n\t" + "Town: " + self.town + 
                  "\n\t" + "City: " + self.city + 
                  "\n\t" + "Postcode: " + self.postcode +
                  "\n\t" + "Country:" + self.country)
  
  class Person:
  
      def __init__(self, name, age, phone, address):
          # instance variables, unique to each Person
          self.name = name
          self.age = age
          self.phone = phone
          self.address = address
  
      def __str__(self):
          return "Name: " + self.name + "\n" + "Age: " + self.age + "\n" + "Phone: " + self.phone + "\n" + "Address: " + self.address
  </code></pre>
  
  <p>However, when I call <code>print(p)</code> where <code>p</code> is a <code>Person</code>, I get the following exception:</p>
  
  <pre><code>  File "phone2.7.py", line 30, in __str__
      return "Name: " + self.name + "\n" + "Age: " + self.age + "\n" + "Phone: " + self.phone + "\n" + "Address: " + self.address
    TypeError: must be str, not Address
  </code></pre>
  
  <p>Can anyone pinpoint what the issue is here? Thanks.</p>