Вот мой 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
И когда я пытаюсь запустить date
функцию:
tr = Transaction('AAPL', 600, '2013-10-25')
print tr.date
Я получаю следующую ошибку:
self.date = datetime.strptime(self.d, "%Y-%m-%d")
AttributeError: 'module' object has no attribute 'strptime'
Как я могу это исправить?
python
class
python-2.7
Майкл
источник
источник
from datetime import datetime
Ответы:
Если бы мне пришлось угадывать, вы сделали это:
в верхней части вашего кода. Это означает, что вы должны сделать это:
чтобы получить доступ к
strptime
методу. Или вы можете изменить оператор импорта следующим образом:и получить к нему доступ, как вы есть.
Люди, которые сделали
datetime
модуль, также назвали свой классdatetime
:источник
Используйте правильный вызов:
strptime
это методdatetime.datetime
класса, это не функция вdatetime
модуле.Как упоминал Джон Клементс в комментариях, некоторые люди делают это
from datetime import datetime
, что связываетdatetime
имя сdatetime
классом и заставляет ваш исходный код работать.Чтобы определить, с каким случаем вы сталкиваетесь (в будущем), посмотрите на свои операторы импорта
import datetime
Это модуль (это то, что у вас есть сейчас).from datetime import datetime
Это класс.источник
from datetime import datetime
а для других систем это просто,import datetime
как ожидается,datetime
чтобы быть модулем ...;)У меня та же проблема, и это не решение, которое вы сказали. Таким образом, я изменил «от datetime import datetime» до «import datetime». После этого с помощью «datetime.datetime» я могу правильно получить все модули. Я думаю, что это правильный ответ на этот вопрос.
источник