title: UserList overloading python 3.x
body: <p>I'm trying to overload UserList methods (add, append, extend) to get no duplicates. For some reason, I still get <code>alpha</code> twice. I even get an empty list if I just try to print the <code>original_list</code> Here's the code I wrote:</p>
  
  <pre><code>#!/usr/bin/env python
  #coding: utf-8
  
  from collections import UserList
  
  class Ulist(UserList):
      def __init__(self, info = []):
          UserList.__init__(self)
          self.info = info
  
      def __add__(self, something_new):
          for i in something_new:
              if i in self:
                  print('%r This is already in the list.' % (i))
              else:
                  return UserList.__add__(self, something_new)
  
      def append(self, something_new):
          if something_new in self:
              print('%r This is already in the list.' % (i))
          else:
              return UserList.append(self, something_new)
  
      def extend(self, something_new):
          for i in something_new:
              if i in self:
                  print('%r This is already in the list.' % (i))
              else:
                  return UserList.extend(self, something_new)
  
  
  # let's test how it works
  
  original_list = Ulist(['alpha'])
  
  original_list.__add__([444])
  original_list.append('alpha')
  original_list.append('I_dont_exist_yet')
  original_list.append(0)
  original_list.extend([98, 98, 234,'alpha','beta','I_am_totally_new',33])
  
  
  print(original_list)
  </code></pre>
  
  <p>Disclaimer: I'm aware people have asked a similar question regarding UserList and method overloading. I analysed these questions but still couldn't figure out why my code doesn't work. Also, I'm new to Python.</p>