विशेषता: 'डेटाइम' मॉड्यूल में कोई विशेषता नहीं है 'स्ट्रैपीम'


153

यहाँ मेरी 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'

मैं कैसे इसे ठीक कर सकता हूं?


13
from datetime import datetime
अश्विनी चौधरी

जवाबों:


384

अगर मुझे अनुमान लगाना था, तो आपने ऐसा किया:

import datetime

अपने कोड के शीर्ष पर। इसका मतलब है कि आपको यह करना है:

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

strptimeविधि का उपयोग करने के लिए । या, आप इसके लिए आयात विवरण बदल सकते हैं:

from datetime import datetime

और जैसे हैं वैसे ही इसे एक्सेस करें।

datetimeमॉड्यूल बनाने वाले लोगों ने अपनी कक्षा काdatetime नाम भी रखा :

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

12
शहर की
यादें

16

सही कॉल का उपयोग करें: क्लास strptimeका एक क्लासमेथोड है datetime.datetime, यह datetimeमॉड्यूल में एक फ़ंक्शन नहीं है ।

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

जैसा कि टिप्पणी में जॉन क्लेमेंट्स ने उल्लेख किया है, कुछ लोग करते हैं from datetime import datetime, जो इसे बांध देगाdatetime नाम को datetimeकक्षा में , और आपके शुरुआती कोड को काम करते हैं।

यह पहचानने के लिए कि आप (भविष्य में) किस मामले का सामना कर रहे हैं, अपने आयात विवरणों को देखें

  • import datetime: यह मॉड्यूल है (जो आपके पास अभी है)।
  • from datetime import datetime: वह क्लास है।

दुख की बात है - आप किसी और की कोड बेस अनुकूल रहे हैं - यह नहीं असामान्य है कि कुछ करने के लिए from datetime import datetimeऔर अन्य प्रणालियों के लिए यह सिर्फ एक import datetimeयह उम्मीद के रूप में datetimeएक मॉड्यूल होने के लिए ...;)
जॉन क्लेमेंट्स

1

मुझे वही समस्या मिली और यह समाधान नहीं है जो आपने बताया था। इसलिए मैंने "डेटाइम इंपोर्ट डेटटाइम से" को "इंपोर्ट डेटटाइम" में बदल दिया। उसके बाद "datetime.datetime" की मदद से मैं पूरे मॉड्यूल को सही ढंग से प्राप्त कर सकता हूं। मुझे लगता है कि यह उस सवाल का सही जवाब है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.