Voici ma classe 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
Et quand j'essaie de lancer la fonction date
:
tr = Transaction('AAPL', 600, '2013-10-25')
print tr.date
Je reçois l'erreur suivante:
self.date = datetime.strptime(self.d, "%Y-%m-%d")
AttributeError: 'module' object has no attribute 'strptime'
Comment puis-je résoudre ce problème?
Si je devais deviner, vous avez fait ceci:
import datetime
en haut de votre code. Cela signifie que vous devez faire ceci:
datetime.datetime.strptime(date, "%Y-%m-%d")
pour accéder à la méthode strptime
. Ou, vous pouvez changer la déclaration d'importation en ceci:
from datetime import datetime
et y accéder comme vous êtes.
Les personnes qui ont créé le module datetime
ont également nommé leur classe datetime
:
#module class method
datetime.datetime.strptime(date, "%Y-%m-%d")
Utilisez le bon appel: strptime
est une méthode de classe de la classe datetime.datetime
, ce n'est pas une fonction du module datetime
.
self.date = datetime.datetime.strptime(self.d, "%Y-%m-%d")
Comme mentionné par Jon Clements dans les commentaires, certaines personnes font from datetime import datetime
, ce qui lierait le nom datetime
à la classe datetime
et ferait fonctionner votre code initial.
Pour identifier le cas auquel vous êtes confronté (à l'avenir), regardez vos déclarations d'importation
import datetime
: c'est le module (c'est ce que vous avez maintenant).from datetime import datetime
: c'est la classe.