Conditional To Perform Alternate Task So I have a operator that basically goes through an operation and I would like to have the F6 menu provide a checkbox that does an alternate behavior. How would I do that? 

class softsharpenOperator(bpy.types.Operator):
'''Sharpen Without Modifiers'''
bl_idname = "ssharpen.objects"
bl_label = "softSharpen"
bl_options = {'REGISTER', 'UNDO'} 

ssharpangle = FloatProperty(name="SSharpening Angle", description="Set SSharp Angle", default= 30.0, min = 0.0, max = 180.0)

angle = FloatProperty(name="AutoSmooth Angle", description="Set AutoSmooth angle", default= 60.0, min = 0.0, max = 180.0)

def execute(self, context):

    #convert angle
    ob = bpy.context.selected_objects

    angle = self.angle
    angle = angle * (3.14159265359/180)

    ssharpangle = self.ssharpangle
    ssharpangle = ssharpangle * (3.14159265359/180)

    #Start In Edit Mode
    bpy.ops.object.mode_set(mode='EDIT')

    #Unhide all The Geo!
    bpy.ops.mesh.reveal()

    #Now Sharpen It
    bpy.ops.mesh.select_mode(use_extend=False, use_expand=False, type='EDGE')
    bpy.ops.mesh.select_all(action='DESELECT')

    #Selects Sharps From A Nothing Selection
    bpy.ops.mesh.edges_select_sharp(sharpness=ssharpangle)

    #And Then Adds Weight / Crease / Sharp        
    bpy.ops.transform.edge_bevelweight(value=1)
    bpy.ops.transform.edge_crease(value=1)
    bpy.ops.mesh.mark_sharp()

    #Comes Out Of Edit Mode
    bpy.ops.object.editmode_toggle()

    #Turns On Smoothing And Then Sorts It Out
    bpy.context.object.data.use_auto_smooth = True

    #now sets angle to Var angle.
    bpy.context.object.data.auto_smooth_angle = angle

    bpy.ops.object.shade_smooth()
    return {'FINISHED'}


So this operator is just supposed to locate the sharp edges and mark it for bevelling. I was able to get variables to show in the F6 menu showing the behavior but it would be even cooler to make it toggle between another behavior and this one.
To enable alternate modes, you generally need a to add a BoolProperty to your operator which will represent the two modes of operation.

To control the value of this property through the F6 menu, you also need to add a Draw function to your operator. You can display the other paramters affecting your operator's behavior there if you want. This seemed to work only if the operator is launched through a Panel or Menu, not when launched from the console though. Maybe some other user here can explain why that is.

class softsharpenOperator(bpy.types.Operator):
    '''Sharpen Without Modifiers'''
    bl_idname = "ssharpen.objects"
    bl_label = "softSharpen"
    bl_options = {'REGISTER', 'UNDO'} 

    ssharpangle = FloatProperty(name="SSharpening Angle", description="Set SSharp Angle", default= 30.0, min = 0.0, max = 180.0)

    angle = FloatProperty(name="AutoSmooth Angle", description="Set AutoSmooth angle", default= 60.0, min = 0.0, max = 180.0)

    # ADD A BOOLEAN PROPERTY TO DISCERN BETWEEN THE TWO ALTERNATE MODES
    alternate_mode = BoolProperty() 

    # ADD A DRAW FUNCTION TO DISPLAY PROPERTIES ON THE F6 MENU
    def draw(self, context):
        layout = self.layout

        box = layout.box()
        # DRAW YOUR PROPERTIES IN A BOX
        box.prop( self, 'ssharpangle' )
        box.prop( self, 'angle' )
        box.prop( self, 'alternate_mode'  )

    def execute(self, context):
        if self.alternate_mode:
            # DO SOMETHING ONE WAY
        else:
            # DO IT THE OTHER WAY

        return {'FINISHED'}


If you want to play around with a simple example that works out of the box (copy and paste to a text editor and run), here's one that alternately creates a sphere or a torus, depending on whether the bool property is set to True or False (to execute the operator either call it from the console, or using the Add Mesh menu - Shift + A --> Mesh --> Test):

import bpy

class testOperator( bpy.types.Operator ):
    """This is a test"""
    bl_idname  = "mesh.test_me"
    bl_label   = "Test"
    bl_options = {'REGISTER', 'UNDO'}

    sphereOn = bpy.props.BoolProperty()

    def draw(self, context):
        layout = self.layout

        box = layout.box()
        box.prop( self, 'sphereOn'  )

    def execute( self, context ):
        if self.sphereOn:
            bpy.ops.mesh.primitive_uv_sphere_add()
        else:
            bpy.ops.mesh.primitive_torus_add()

        return {'FINISHED'}

# Operator adding function (used to inject operator to menu)
def menu_func( self, context ):
    self.layout.operator(
        "mesh.test_me",
        text = "Test",
        icon = "PLUGIN"
    )

def register():
    bpy.utils.register_module(__name__)

    # Add "Snowflake" menu to the "Add Mesh" menu
    bpy.types.INFO_MT_mesh_add.append( menu_func )

def unregister():
    bpy.utils.unregister_module(__name__)

    # Remove "Snowflake" menu from the "Add Mesh" menu.
    bpy.types.INFO_MT_mesh_add.remove( menu_func )

if __name__ == "__main__":
    register()