Hier ist meine Transaction
Klasse:
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
Und wenn ich versuche, die date
Funktion auszuführen :
tr = Transaction('AAPL', 600, '2013-10-25')
print tr.date
Ich erhalte die folgende Fehlermeldung:
self.date = datetime.strptime(self.d, "%Y-%m-%d")
AttributeError: 'module' object has no attribute 'strptime'
Wie kann ich das beheben?
python
class
python-2.7
Michael
quelle
quelle
from datetime import datetime
Antworten:
Wenn ich raten müsste, hast du das getan:
am Anfang Ihres Codes. Dies bedeutet, dass Sie dies tun müssen:
um auf die
strptime
Methode zuzugreifen . Sie können die import-Anweisung auch folgendermaßen ändern:und greifen Sie darauf zu, wie Sie sind.
Die Leute, die das
datetime
Modul erstellt haben, haben auch ihre Klasse benanntdatetime
:quelle
Verwenden Sie den richtigen Aufruf:
strptime
ist eine Klassenmethode derdatetime.datetime
Klasse, keine Funktion imdatetime
Modul.Wie von Jon Clements in den Kommentaren erwähnt, tun dies einige Leute
from datetime import datetime
, die dendatetime
Namen an diedatetime
Klasse binden und Ihren anfänglichen Code zum Laufen bringen würden.Sehen Sie sich Ihre Importanweisungen an, um festzustellen, mit welchem Fall Sie (in Zukunft) konfrontiert sind
import datetime
: das ist das Modul (das haben Sie gerade).from datetime import datetime
: das ist die Klasse.quelle
from datetime import datetime
und für andere Systeme ist es genau so,import datetime
wie esdatetime
ein Modul erwartet ...;)Ich habe das gleiche Problem und es ist nicht die Lösung, die Sie gesagt haben. Also habe ich "von datetime import datetime" in "import datetime" geändert. Danach kann ich mit Hilfe von "datetime.datetime" die gesamten Module korrekt abrufen. Ich denke, das ist die richtige Antwort auf diese Frage.
quelle