Voici ma Transaction
classe:
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'essaye d'exécuter la date
fonction:
tr = Transaction('AAPL', 600, '2013-10-25')
print tr.date
J'obtiens 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?
python
class
python-2.7
Michael
la source
la source
from datetime import datetime
Réponses:
Si je devais deviner, vous avez fait ceci:
en haut de votre code. Cela signifie que vous devez faire ceci:
pour accéder à la
strptime
méthode. Ou, vous pouvez modifier l'instruction d'importation comme suit:et accédez-y comme vous êtes.
Les personnes qui ont créé le
datetime
module ont également nommé leur classedatetime
:la source
Utilisez l'appel correct:
strptime
est une méthode dedatetime.datetime
classe de la classe, ce n'est pas une fonction dans ledatetime
module.Comme mentionné par Jon Clements dans les commentaires, certaines personnes le font
from datetime import datetime
, ce qui lierait ledatetime
nom à ladatetime
classe 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 en ce moment).from datetime import datetime
: c'est la classe.la source
from datetime import datetime
et pour d'autres systèmes, c'est justeimport datetime
comme il s'attenddatetime
à être un module ...;)J'ai le même problème et ce n'est pas la solution que vous avez indiquée. J'ai donc changé le "from datetime import datetime" en "import datetime". Après cela, avec l'aide de "datetime.datetime", je peux obtenir tous les modules correctement. Je suppose que c'est la bonne réponse à cette question.
la source