How to dynamically show/hide panel elements with python?
scene['Object_type'] will refer to a custom property you have added to a scene either by using the Custom Properties panel in the scene properties or by blender automatically creating it as you used scene['Object_type'] = 2 in your script or the python console.

The proper way to create a new property for your addon to use is by using bpy.props.

In your addons register() function you define the new property then in unregister() you remove it. Within your panel you can then access it with scene.myprop

import bpy

class LayoutDemoPanel(bpy.types.Panel):
    """Creates a Panel in the 3D views toolbar region"""
    bl_label = 'Layout Demo'
    bl_idname = 'SCENE_PT_layout_demo'
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'

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

        row = layout.row()
        row.label('testing')

        if scene.myprop == 2:
            row = layout.row()
            row.label('my property is 2')


def register():
    bpy.types.Scene.myprop = bpy.props.IntProperty(name="My Storage", default=2)
    bpy.utils.register_class(LayoutDemoPanel)

def unregister():
    bpy.utils.unregister_class(LayoutDemoPanel)
    del bpy.types.Scene.myprop

if __name__ == "__main__":
    register()