Aqui está a minha Transaction
turma:
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
E quando estou tentando executar a date
função:
tr = Transaction('AAPL', 600, '2013-10-25')
print tr.date
Estou recebendo o seguinte erro:
self.date = datetime.strptime(self.d, "%Y-%m-%d")
AttributeError: 'module' object has no attribute 'strptime'
Como posso consertar isso?
python
class
python-2.7
Michael
fonte
fonte
from datetime import datetime
Respostas:
Se eu tivesse que adivinhar, você faria o seguinte:
na parte superior do seu código. Isso significa que você precisa fazer isso:
para acessar o
strptime
método Ou você pode alterar a instrução de importação para isso:e acesse-o como você é.
As pessoas que criaram o
datetime
módulo também nomearam sua classedatetime
:fonte
Use a chamada correta:
strptime
é um método dedatetime.datetime
classe da classe, não é uma função nodatetime
módulo.Como mencionado por Jon Clements nos comentários, algumas pessoas o fazem
from datetime import datetime
, o que vincularia odatetime
nome àdatetime
classe e faria seu código inicial funcionar.Para identificar qual caso você está enfrentando (no futuro), observe suas instruções de importação
import datetime
: esse é o módulo (é o que você tem agora).from datetime import datetime
: essa é a classe.fonte
from datetime import datetime
e para outros sistemas é apenas umaimport datetime
como que esperadatetime
para ser um módulo ...;)Eu tenho o mesmo problema e não é a solução que você disse. Então, mudei o "from datetime import datetime" para "import datetime". Depois disso, com a ajuda de "datetime.datetime", posso obter os módulos inteiros corretamente. Eu acho que essa é a resposta correta para essa pergunta.
fonte