def __init__(self, objs):
        if isinstance(objs, _api.MSelectionList ):
            _api.MSelectionList.__init__(self, objs)

        elif isinstance(objs, ObjectSet ):
            _api.MSelectionList.__init__(self, objs.asSelectionSet() )

        else:
            _api.MSelectionList.__init__(self)
            for obj in objs:
                if isinstance(obj, (DependNode, DagNode) ):
                    self.apicls.add( self, obj.__apiobject__() )
                elif isinstance(obj, general.Attribute):
                    self.apicls.add( self, obj.__apiobject__(), True )
    #            elif isinstance(obj, Component):
    #                sel.add( obj.__apiobject__(), True )
                elif isinstance( obj, basestring ):
                    self.apicls.add( self, obj )
                else:
                    raise TypeError
can be initialized from a list of objects, another SelectionSet, an MSelectionList, or an ObjectSet
dataset/ETHPy150Open CountZer0/PipelineConstructionSet/python/maya/site-packages/pymel-1.0.3/pymel/core/nodetypes.py/SelectionSet.__init__