web-dev-qa-db-ja.com

AttributeError: 'datetime'モジュールには属性 'strptime'がありません

以下が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'

どうすれば修正できますか?

116
Michael

私が推測しなければならなかった場合、あなたはこれをしました:

import datetime

コードの先頭に。これは、これを行う必要があることを意味します。

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

strptimeメソッドにアクセスします。または、インポートステートメントを次のように変更できます。

from datetime import datetime

そのままアクセスします。

datetimeモジュール を作った人々は、彼らの class datetime にも名前を付けました:

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

正しい呼び出しを使用してください。strptimedatetime.datetimeクラスのクラスメソッドであり、datetimeモジュールの関数ではありません。

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

Jon Clementsがコメントで述べたように、一部の人々はfrom datetime import datetimeを実行します。これはdatetimeの名前をdatetimeクラスにバインドし、初期コードを機能させます。

(将来)直面しているケースを特定するには、importステートメントを確認します

  • import datetime:それがモジュールです(現在それがあります)。
  • from datetime import datetime:それがクラスです。
13
Thomas Orozco