AttributeError: 'datetime' modülünün 'strptime' özelliği yok


154

İşte benim Transactionsınıfım:

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

Ve datefonksiyonu çalıştırmaya çalıştığımda :

tr = Transaction('AAPL', 600, '2013-10-25')
print tr.date

Aşağıdaki hatayı alıyorum:

   self.date = datetime.strptime(self.d, "%Y-%m-%d")
 AttributeError: 'module' object has no attribute 'strptime'

Bunu nasıl düzeltebilirim?


13
from datetime import datetime
Ashwini Chaudhary

Yanıtlar:


384

Tahmin etmek zorunda kalsaydım, bunu yaptın:

import datetime

tıklayın. Bu, bunu yapmanız gerektiği anlamına gelir:

datetime.datetime.strptime(date, "%Y-%m-%d")

strptimeYönteme erişmek için . Veya içe aktarma ifadesini şu şekilde değiştirebilirsiniz:

from datetime import datetime

ve istediğiniz gibi erişebilirsiniz.

datetimeModülü yapan insanlar sınıflarınıdatetime da adlandırdı :

#module  class    method
datetime.datetime.strptime(date, "%Y-%m-%d")

12
Kolombiya Kolombiya Kolombiya hatırlatıyor: en.wikipedia.org/wiki/Colombia,_Huila
sindri_baldur

16

Doğru çağrıyı kullanın: sınıfın bir sınıf strptimeyöntemidir datetime.datetime, datetimemodüldeki bir işlev değildir .

self.date = datetime.datetime.strptime(self.d, "%Y-%m-%d")

Yorumlarda Jon Clements'in belirttiği gibi, bazı insanlar adı sınıfa from datetime import datetimebağlar ve ilk kodunuzu çalışır hale getirir.datetimedatetime

Hangi durumda karşılaşacağınızı belirlemek için (gelecekte) içe aktarma ifadelerinize bakın

  • import datetime: modül budur (şu anda sahip olduğunuz şey budur).
  • from datetime import datetime: sınıf bu.

Ne yazık ki - başka birinin kod tabanını uyarlıyorsanız - bazılarının yapması nadir değildir from datetime import datetimeve diğer sistemler için sadece bir modül import datetimeolmasını beklediği gibi datetime...;)
Jon Clements

1

Aynı sorunu yaşadım ve sizin söylediğiniz çözüm bu değil. Bu yüzden "datetime import datetime" ı "import datetime" olarak değiştirdim. Bundan sonra "datetime.datetime" yardımıyla tüm modülleri doğru bir şekilde alabilirim. Sanırım bu soruya doğru cevap bu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.