В Python почему не работает импорт в exec в функции?

Я могу поместить оператор импорта в строку, выполнить его, и он работает (печатает случайную цифру):

code = """
import random
def f():
    print random.randint(0,9)
"""

def f():
    pass

exec code
f()

Теперь, если я поставлюexec code а такжеf() в своей собственной функции и вызвать его, это нет работа.

def test():
    exec code
    f()

test()

Это говоритNameError: global name 'random' is not defined, Любая идея, чтопроисходит? Спасибо

Ответы на вопрос(3)

Ваш ответ на вопрос