2013-10-20 14 views
69

を持っていないです私のTransactionクラス:私ははAttributeError: 'モジュール' オブジェクトには、属性 'のstrptime' ここ

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

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関数を実行しようとしているとき次のエラーが表示されます:

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

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

+7

'日時輸入datetime' –

答えて

180

は、あなたがこれをしませんでした。 strptimeメソッドにアクセスするために

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

:これは、あなたがこれをしなければならないことを意味します。または、インポートステートメントを次のように変更することができます。

from datetime import datetime 

これをそのまま使用してください。

もそのclass datetimeという名前datetime moduleを作った人:

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

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

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

コメントでジョン・クレメンツで述べたように、一部の人々はdatetimeクラスにdatetime名を結合し、そしてあなたの最初のコードの作業になるだろうfrom datetime import datetimeを行います。あなたは(将来的に)直面している。その場合

を識別するために、あなたのimport文

  • import datetimeを見て:それは(それはあなたが今持っているものだ)モジュールです。
  • from datetime import datetime:これがクラスです。あなたのコードの先頭に

    import datetime 
    

    :私は推測していた場合

+0

から悲しい - 日時から一部がすることは珍しくありません' - あなたは誰か他の人のコードベースを適応している場合import datetime'と他のシステムでは 'datetime'がモジュールになると期待しているので' import datetime'です...;) –

+0

@JonClements確かに! –

関連する問題