여기 내 Transaction
수업이 있습니다.
class Transaction(object):
def __init__(self, company, num, price, date, is_buy):
self.company = company
self.num = num
self.price = price
self.date = datetime.strptime(date, "%Y-%m-%d")
self.is_buy = is_buy
그리고 date
함수 를 실행하려고 할 때 :
tr = Transaction('AAPL', 600, '2013-10-25')
print tr.date
다음과 같은 오류가 발생합니다.
self.date = datetime.strptime(self.d, "%Y-%m-%d")
AttributeError: 'module' object has no attribute 'strptime'
어떻게 고칠 수 있습니까?
답변
내가 추측해야한다면, 당신은 이것을했다 :
import datetime
코드 상단에. 이것은 당신이 이것을해야한다는 것을 의미합니다 :
datetime.datetime.strptime(date, "%Y-%m-%d")
strptime
메소드 에 액세스합니다 . 또는 import 문을 다음과 같이 변경할 수 있습니다.
from datetime import datetime
그리고 그대로 액세스하십시오.
datetime
모듈 을 만든 사람들 도 클래스datetime
이름을 지정했습니다 .
#module class method
datetime.datetime.strptime(date, "%Y-%m-%d")
답변
올바른 호출을 사용하십시오 : 클래스 strptime
의 datetime.datetime
클래스 메소드이며 datetime
모듈 의 함수가 아닙니다 .
self.date = datetime.datetime.strptime(self.d, "%Y-%m-%d")
주석에서 Jon Clements가 언급했듯이 일부 사람들은 이름을 클래스에 from datetime import datetime
바인딩하고 초기 코드를 작동시킵니다.datetime
datetime
현재 어떤 문제가 발생했는지 확인하려면 수입 명세서를 확인하십시오.
import datetime
: 그것은 모듈입니다 (지금 당신이 가진 것입니다).from datetime import datetime
: 클래스입니다.
답변
나는 같은 문제를 겪었고 그것은 당신이 말한 해결책이 아닙니다. 그래서 “datetime import datetime”을 “import datetime”으로 변경했습니다. 그 후 “datetime.datetime”의 도움으로 전체 모듈을 올바르게 얻을 수 있습니다. 나는 이것이 그 질문에 대한 정답이라고 생각합니다.