2015-02-08 3 views
-3

Кто-нибудь видит, почему я получаю ошибку «func undefined» здесь? Все выглядит правильно для меня.NameError: name 'func' не определен

// dictutil.py 
def func(L): 
    d = {} 
    for i in range(len(L)): 
     d[i] = L[i] 
    return d 

// Python подсказка командной строки:

импорт dictutil (попытка загрузить dictutil.py)

Ошибка:

Traceback (самый последний вызов последнего): Файл " ", строка 1, в NameError: имя 'func' не определено

+0

Вы пытаетесь получить доступ к 'func' без квалификации его? 'Dictutil.func' – falsetru

+0

Отборочные не помогает: >>> dictutil.func ([ 'а', 'б']) Traceback (самый последний вызов последнего): Файл "", строка 1, в AttributeError: объект 'module' не имеет атрибута 'func' – RobertJoseph

ответ

5

Пока ваш код верен, вы не импортировали func в ваше пространство имен (это то, что пытается сказать вам NameError).

У вас есть варианты:

1) ввозная func() в пространстве имен на импорт:

from dictutil import func 

2) квалифицируется звонки в func() путем ссылки на модуль, который содержит функцию:

dictutil.func() 

Как правило, вы можете просмотреть, что находится в вашем пространстве имен с локальным охватом (что означает, что его можно вызвать напрямую), используя t он dir() метод:

>>> dir() 
['__builtins__', '__doc__', '__name__', '__package__', 'dictutil', 'readline', 'rlcompleter'] 
1

Вы должны получить доступ к FUNC как:

import dictutil 
dictutil.func() 
Смежные вопросы