'Parameters
input : sequence of `Column`, `ColDefs`, other
An existing table HDU, an existing `ColDefs`, or any multi-field
Numpy array or `numpy.recarray`.
ascii : bool
Use True to ensure that ASCII table columns are used.'

def __init__(self, input, ascii=False):

    from .hdu.table import _TableBaseHDU
    from .fitsrec import FITS_rec
    if isinstance(input, ColDefs):
        self._init_from_coldefs(input)
    elif (isinstance(input, FITS_rec) and hasattr(input, '_coldefs') and input._coldefs):
        self._init_from_coldefs(input._coldefs)
    elif (isinstance(input, np.ndarray) and (input.dtype.fields is not None)):
        self._init_from_array(input)
    elif isiterable(input):
        self._init_from_sequence(input)
    elif isinstance(input, _TableBaseHDU):
        self._init_from_table(input)
    else:
        raise TypeError('Input    to    ColDefs    must    be    a    table    HDU,    a    list    of    Columns,    or    a    record/field    array.')
    for col in self.columns:
        col._add_listener(self)
