def look_at_obj(self, objecttype):
    # Find the object with the given objecttype
    entity = self.find_object(objecttype)
    
    if entity is None:
        # If the object is not found, explore the environment
        self.explore()
        return
    
    # Go to the object's receptacle
    self.goto(entity.in_on)
    
    # Open the receptacle if it is openable and not already open
    r_entity = self.seen_entitys[entity.in_on]
    if r_entity.openable and not r_entity.isopen:
        self.open_receptacle(r_entity.name)
    
    # Take the object
    self.take(entity.name, entity.in_on)
    
    # Find a desk lamp
    desk_lamp = self.find_object('desklamp')
    
    if desk_lamp is None:
        # If no desk lamp is found, explore the environment
        self.explore()
        return
    
    # Go to the desk lamp
    self.goto(desk_lamp.in_on)
    
    # Open the receptacle containing the desk lamp if it is openable and not already open
    r_entity = self.seen_entitys[desk_lamp.in_on]
    if r_entity.openable and not r_entity.isopen:
        self.open_receptacle(r_entity.name)
    
    # Turn on the desk lamp
    self.turn_on(desk_lamp.name)
    
    # Now the agent is holding the object and the desk lamp is on, so the object can be examined
    # (Assuming examination is done by the agent being aware of the object's state)