AttributeError: el módulo ‘datetime’ no tiene atributo ‘strptime’

Aquí está mi clase de 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 

Y cuando estoy tratando de ejecutar la función de date :

 tr = Transaction('AAPL', 600, '2013-10-25') print tr.date 

Estoy recibiendo el siguiente error:

  self.date = datetime.strptime(self.d, "%Y-%m-%d") AttributeError: 'module' object has no attribute 'strptime' 

¿Cómo puedo arreglar eso?

Si tuviera que adivinar, hiciste esto:

 import datetime 

en la parte superior de su código. Esto significa que tienes que hacer esto:

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

para acceder al método strptime . O bien, podría cambiar la statement de importación a esto:

 from datetime import datetime 

Y accede a él como eres.

Las personas que hicieron el módulo datetime también llamaron a su clase datetime :

 #module class method datetime.datetime.strptime(date, "%Y-%m-%d") 

Use la llamada correcta: strptime es un método de clase de la clase datetime.datetime , no es una función en el módulo de datetime .

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

Como lo mencionó Jon Clements en los comentarios, algunas personas lo hacen from datetime import datetime , lo que vincularía el nombre de datetime a la clase de datetime y hará que su código inicial funcione.

Para identificar qué caso está enfrentando (en el futuro), mire sus declaraciones de importación

  • import datetime : ese es el módulo (eso es lo que tiene ahora).
  • from datetime import datetime : esa es la clase.