title: Deep copy of OrderedDict child
body: <p>I have experimented with <code>deepcopy</code> from <code>copy</code> module. It works well with OrderedDict instance and with instance of dict child. But it doesn't work with instance of OrderedDict child. Here is a demo:</p>
  
  <pre><code>from collections import OrderedDict
  from copy import deepcopy
  
  class Example2(dict):
      def __init__(self,l):
          dict.__init__(self,l)
  
  class Example3(OrderedDict):
      def __init__(self,l):
          OrderedDict.__init__(self,l)
  
  d1=OrderedDict([(1,1),(2,2)]) 
  print(deepcopy(d1))           #OrderedDict([(1, 1), (2, 2)])
  
  d2=Example2([(1,1),(2,2)])
  print(deepcopy(d2))           #{1: 1, 2: 2}
  
  d3=Example3([(1,1),(2,2)])
  print(deepcopy(d3))
  </code></pre>
  
  <p>First two examples work as expected but the last one crashes with an exception:</p>
  
  <pre><code>TypeError: __init__() missing 1 required positional argument: 'l'
  </code></pre>
  
  <p>So the question is: what is actually the problem here and is it possible to use the <code>deepcopy</code> function for this situation at all? </p>