Следующий код:
def x(key):
def y():
print key
if callable(key):
key = key()
y()
x(0)
UnboundLocalError: local variable 'key' referenced before assignment
хотя, если закомментировать строчку key = key() (и вставить pass), этот код, как и положено, напечатает на экране ноль.
// CPython 2.7.2