title: AttributeError: Array instance has no attribute '__trunc__'
body: <p>I am trying to create a 2D-arrays in python using c-types. For that I have created two modules arrays.py and array2D.py</p>
  
  <p>TraceBack is :</p>
  
  <pre><code>Traceback (most recent call last):
  
   File "C:\Python27\Lib\array2D.py", line 52, in &lt;module&gt;
  
   arr = Array2D(2,4)
  
   File "C:\Python27\Lib\array2D.py", line 15, in __init__
  
   self._theRows[i] = arrays.Array( numCols )
  
  File "C:\Python27\Lib\arrays.py", line 37, in __setitem__
  
  self._elements[ index ] = value
  
  AttributeError: Array instance has no attribute '__trunc__'
  </code></pre>
  
  <p><strong>Code</strong> </p>
  
  <p><strong>arrays.py module</strong></p>
  
  <pre><code>import ctypes
  
  class Array:
  
  #Creates an array with size elements.
  def __init__( self, size ):
      assert size &gt; 0, "Array size must be &gt; 0"
      self._size = size
      print "sixe is %s" %self._size
  
   # Create the array structure using the ctypes module.
      PyArrayType = ctypes.c_int * size
      self._elements = PyArrayType()
      print "type is e", type(self._elements)
     #self._elements = ctypes.c_int * size
  
  
  # Initialize each element.
      #for i in range(self._size):
      #self.clear( i )
  
  
  # Returns the size of the array.
  def __len__( self ):
      return self._size
  
  # Gets the contents of the index element.
  def __getitem__( self, index ):
      assert index &gt;= 0 and index &lt; len(self), "Array subscript out of range"
      return self._elements[ index ]
  
  # Puts the value in the array element at index position.
   def __setitem__( self, index, value ):
       assert index &gt;= 0 and index &lt; len(self), "Array subscript out of range"
       print "Type is ", type(index)
       f._index = (index)
       self._elements[ index ] = value
  
  
   # Clears the array by setting each element to the given value.
    def clear( self, value ):
        for i in range( len(self) ) :
            self._elements[i] = value
  </code></pre>
  
  <p><strong>array2D.py</strong></p>
  
  <pre><code>import arrays
  
  
  class Array2D :
  # Creates a 2-D array of size numRows x numCols.
      def __init__( self, numRows, numCols ):
  
   # Create a 1-D array to store an array reference for each row.
          self._theRows = arrays.Array( numRows )
  
  # Create the 1-D arrays for each row of the 2-D array.
      for i in range( numRows ) :
          self._theRows[i] = arrays.Array( numCols )
  
  # Returns the number of rows in the 2-D array.
      def numRows( self ):
          return len( self._theRows )
  
  # Returns the number of columns in the 2-D array.
      def numCols( self ):
          return len( self._theRows[0] )
  
   # Clears the array by setting every element to the given value.
      def clear( self, value ):
          for row in range( self.numRows() ):
              row.clear( value )
  
  # Gets the contents of the element at position [i, j]
      def __getitem__( self, ndxTuple ):
          assert len(ndxTuple) == 2, "Invalid number of array subscripts."
          row = ndxTuple[0]
          col = ndxTuple[1]
          assert row &gt;= 0 and row &lt; self.numRows() \
              and col &gt;= 0 and col &lt; self.numCols(), \
              "Array subscript out of range."
          the1dArray = self._theRows[row]
          return the1dArray[col]
  
  
  # Sets the contents of the element at position [i,j] to value.
      def __setitem__( self, ndxTuple, value ):
          assert len(ndxTuple) == 3, "Invalid number of array subscripts."
          row = ndxTuple[0]
          col = ndxTuple[1]
          assert row &gt;= 0 and row &lt; self.numRows() \
          and col &gt;= 0 and col &lt; self.numCols(), \
              "Array subscript out of range."
          the1dArray = self._theRows[row]
          the1dArray[col] = value
  
  
  Forming the 2d array using the following line
  
  arr = Array2D(2,4)
  
  print "arr is %s" %arr
  </code></pre>
  
  <p>Can anyone please let me know what am i doing wrong here?</p>