NameError: имя 'thisFunctionName' не определено
Я написал небольшой файл Python, чтобы проверить работу некоторых функций (functions.py), которая была успешной - до некоторой степени. Код появляется ниже:
import os
import datetime
def thisTime():
now = datetime.now()
return now
def thisDir():
current = os.getcwd()
return current
Этот код компилируется и успешно выполняется. Из командной консоли я вызываю functions.py со следующим:
from functions import*
что позволяет мне сделать следующее
>>> thisTime()
datetime.datetime(2014, 1, 4, 20, 46, 1, 131363)
Однако, когда я выпускаю >>> thisDir()
появляется следующая ошибка
Traceback (most recent call last):
File "<console>", line 1, in <module>
NameError: name 'thisDir' is not defined
Любая помощь оценена в понимании природы ошибки.
2 ответа
Ваш звонок на datetime.now() был неверным. Это datetime.datetime.now() или вы можете импортировать класс datetime по отдельности, например так:
import os
from datetime import datetime
def thisTime():
now = datetime.now()
return now
def thisDir():
current = os.getcwd()
return current
Приведенный выше код работает. Вот образец:
~/Codes/py ⮀ python -i test.py
>>> thisTime()
datetime.datetime(2014, 1, 4, 16, 53, 42, 969364)
>>> thisDir()
'/Users/masnun/Codes/py'
>>>
Предполагая, что исходный код находится в functions.py, этот код прекрасно работает для меня:
from functions import *
print thisTime()
print thisDir()
~/Codes/py ⮀ python test.py
2014-01-04 17:00:04.254856
/Users/masnun/Codes/py
~/Codes/py ⮀
Работает для меня. Должна быть ошибка отступа. На самом деле thisTime() не работает:
>>> datetime.now()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'now'
>>> datetime.datetime.now()
datetime.datetime(2014, 1, 4, 12, 32, 38, 460157)
Попробуйте проверить интервалы и табуляции с помощью программы "Показать все символы" в Notepad++ или чего-то подобного. http://mattrefghi.com/wp-content/uploads/2010/05/ShowAllCharacters.png