[python] AttributeError : ‘datetime’모듈에 ‘strptime’속성이 없습니다.

여기 내 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")


답변

올바른 호출을 사용하십시오 : 클래스 strptimedatetime.datetime클래스 메소드이며 datetime모듈 의 함수가 아닙니다 .

self.date = datetime.datetime.strptime(self.d, "%Y-%m-%d")

주석에서 Jon Clements가 언급했듯이 일부 사람들은 이름을 클래스에 from datetime import datetime바인딩하고 초기 코드를 작동시킵니다.datetimedatetime

현재 어떤 문제가 발생했는지 확인하려면 수입 명세서를 확인하십시오.

  • import datetime: 그것은 모듈입니다 (지금 당신이 가진 것입니다).
  • from datetime import datetime: 클래스입니다.

답변

나는 같은 문제를 겪었고 그것은 당신이 말한 해결책이 아닙니다. 그래서 “datetime import datetime”을 “import datetime”으로 변경했습니다. 그 후 “datetime.datetime”의 도움으로 전체 모듈을 올바르게 얻을 수 있습니다. 나는 이것이 그 질문에 대한 정답이라고 생각합니다.


답변