2013-09-26 2 views
1

나는 strftime, strptime 및 timedelta와 같이 datetime 모듈의 다양한 함수를 사용하는 함수를 만들려고합니다.Python 정의 전역 이름 datetime

는 내가 모든 노력을 한 것 같은 느낌,하지만 때마다 나는이 말된다 :

 4 date = '2012.09.07' 
     5 
----> 6 q = net(date) 
     7 print q 

/Users/fb/Documents/Python_files/test_function.pyc in net(date) 
     1 def net(date): 
----> 2  b = datetime.strptime(a, '%Y.%m.%d') 
     3  c = b.strftime('%d:%m:%y') 
     4  return c 

NameError: global name 'datetime' is not defined 

나는, 즉 '그것은 파이썬 인터프리터에서 작동 다른 사람은 아마 같은 문제가 발생 읽었습니다 하지만 스크립트에는 없습니다 '. 아무도 도와 줄 수 있니?

+1

여기서'a' 변수는 무엇입니까? b = datetime.strptime (a, '% Y. % m. % d')'? –

답변

5

당신은 모듈에 datetime 객체 를 가져와야 :

from datetime import datetime 

test_function.py의 상단에.

인터프리터 세션에서 이미 개체를 이미 가져온 것일 수 있습니다.

전체 모듈은 보이는 것 같은 :

그 함수의 실제 인수의 이름이기 때문에 내가 datea을 대체
from datetime import datetime 

def net(date): 
    b = datetime.strptime(date, '%Y.%m.%d') 
    c = b.strftime('%d:%m:%y') 
    return c 

. datetime모듈 여기에 가져온 유일한 인 datetime클래스를 포함

참고. 당신이뿐만 아니라 datetimedelta 클래스에 액세스해야하는 경우, 명시 적으로 (from datetime import datetime, date, timedelta)를이를 가져 오거나 단지 모듈을 가져 특성 (import datetime 다음 datetime.datetime.strptime()datetime.date.today() 등)로 내용을 참조하십시오.

+1

좋은 답변이지만,'from datetime import datetime'이 모듈 이름을 숨기고 나중에 Date 및 TimeDelta와 같은 다른 클래스에 액세스 할 수 없게한다는 경고를 포함 할 수 있습니다. 여기에 공통적 인 문제가 있습니다. – tdelaney

관련 문제