以下が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'
どうすれば修正できますか?
私が推測しなければならなかった場合、あなたはこれをしました:
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")
正しい呼び出しを使用してください。strptime
はdatetime.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
:それがクラスです。