Here is my Transaction class:
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
And when I’m trying to run the date function:
tr = Transaction('AAPL', 600, '2013-10-25')
print tr.date
I’m getting the following error:
self.date = datetime.strptime(self.d, "%Y-%m-%d") AttributeError: 'module' object has no attribute 'strptime'
How can I fix that?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
If I had to guess, you did this:
import datetime
at the top of your code. This means that you have to do this:
datetime.datetime.strptime(date, "%Y-%m-%d")
to access the strptime method. Or, you could change the import statement to this:
from datetime import datetime
and access it as you are.
The people who made the datetime module also named their class datetime:
#module class method datetime.datetime.strptime(date, "%Y-%m-%d")
Method 2
Use the correct call: strptime is a classmethod of the datetime.datetime class, it’s not a function in the datetime module.
self.date = datetime.datetime.strptime(self.d, "%Y-%m-%d")
As mentioned by Jon Clements in the comments, some people do from datetime import datetime, which would bind the datetime name to the datetime class, and make your initial code work.
To identify which case you’re facing (in the future), look at your import statements
import datetime: that’s the module (that’s what you have right now).from datetime import datetime: that’s the class.
Method 3
I got the same problem and it is not the solution that you told. So I changed the “from datetime import datetime” to “import datetime”. After that with
the help of “datetime.datetime” I can get the whole modules correctly. I guess this is the correct answer to that question.
Method 4
Values may differ depending on usage.
import datetime
date = datetime.datetime.now()
date.strftime('%Y-%m-%d') # date variable type is datetime
The value of the date variable must be a string::
date = '2021-09-06' datetime.datetime.strptime(date, "%Y-%m-%d") str(datetime.datetime.strptime(date, "%Y-%m-%d")) # show differently
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0