title: Python prints object address instead of values
body: <p>I want to print all of the tracks that have been added to the <code>tracks[]</code> list.  When I attempt to do so, I get the address where that object sits in memory, rather than its actual value.  I obviously don't understand how object creation/passing of objects from one class to another class works.</p>
  
  <pre><code>class Song:
  
      def __init__(self, title, artist, album, track_number):
          self.title = title
          self.artist = artist
          self.album = album
          self.track_number = track_number
  
          artist.add_song(self)
  
  
  class Album:
  
      def __init__(self, title, artist, year):
          self.title = title
          self.artist = artist
          self.year = year
  
          self.tracks = []
  
          artist.add_album(self)
  
      def add_track(self, title, artist=None):
          if artist is None:
              artist = self.artist
  
          track_number = len(self.tracks)
  
          song = Song(title, artist, self, track_number)
  
          self.tracks.append(song)
          print(self.tracks)
  
  
  class Artist:
      def __init__(self, name):
          self.name = name
  
          self.albums = []
          self.songs = []
  
      def add_album(self, album):
          self.albums.append(album)
  
      def add_song(self, song):
          self.songs.append(song)
  
  
  class Playlist:
      def __init__(self, name):
          self.name = name
          self.songs = []
  
      def add_song(self, song):
          self.songs.append(song)
  
  band = Artist("Bob's Awesome Band")
  album = Album("Bob's First Single", band, 2013)
  album.add_track("A Ballad about Cheese")
  album.add_track("A Ballad about Cheese (dance remix)")
  album.add_track("A Third Song to Use Up the Rest of the Space")
  playlist = Playlist("My Favourite Songs")
  
  
  for song in album.tracks:
      playlist.add_song(song)
  </code></pre>