Python no devuelve variables

En este reloj, inicialmente hice que el usuario ingrese la hora, pero cuando no devuelve la hora en variables. Yo tengo un

Traceback (most recent call last):
  File "C:/Documents and Settings/Brett/My Documents/Programming/Python/clock.py", line 20, in <module>
    print(hour,":",mins,":",sec)
NameError: name 'hour' is not defined

Sé que la parte de tiempo establecido de dosnt debe ser una función, pero quiero usarla más tarde.

import time

def setTime():
    print("Set time \n--------")
    time=input("24 hour or 12 hour \nType 1 or 2: ")
    if time=="2": hour12=input("AM or PM \nType 1 or 2: ")
    else: hour12=0
    hour=input("Hour: ")
    mins=input("Minute: ")
    print("--------")
    sec=0
    return time,hour12,hour,mins,sec

def printTime24():
    print(hour,":",mins,":",sec)

#def printTime12():

setTime()
print(hour,":",mins,":",sec)
while True:
    time.sleep(1)
    sec+=1
    if sec == 60:
        sec=0
        mins+=1
    if mins == 60:
        mins=0
        hour+=1
    if time=="1": printTime24()
#    elif time=="2": printTime12()

Respuestas a la pregunta(1)

Su respuesta a la pregunta