Ini Transaction
kelas saya :
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
Dan ketika saya mencoba menjalankan date
fungsinya:
tr = Transaction('AAPL', 600, '2013-10-25')
print tr.date
Saya mendapatkan kesalahan berikut:
self.date = datetime.strptime(self.d, "%Y-%m-%d")
AttributeError: 'module' object has no attribute 'strptime'
Bagaimana saya bisa memperbaikinya?
python
class
python-2.7
Michael
sumber
sumber
from datetime import datetime
Jawaban:
Jika saya harus menebak, Anda melakukan ini:
di bagian atas kode Anda. Ini artinya Anda harus melakukan ini:
untuk mengakses
strptime
metode. Atau, Anda dapat mengubah pernyataan impor menjadi ini:dan akseslah sebagaimana adanya.
Orang-orang yang membuat
datetime
modul juga memberi nama kelasdatetime
mereka :sumber
Gunakan panggilan yang benar:
strptime
adalah metodedatetime.datetime
kelas, itu bukan fungsi dalamdatetime
modul.Seperti yang disebutkan oleh Jon Clements dalam komentar, beberapa orang melakukannya
from datetime import datetime
, yang akan mengikatdatetime
nama kedatetime
kelas, dan membuat kode awal Anda berfungsi.Untuk mengidentifikasi kasus yang Anda hadapi (di masa depan), lihat pernyataan impor Anda
import datetime
: itulah modul (itulah yang Anda miliki sekarang).from datetime import datetime
: itu kelasnya.sumber
from datetime import datetime
dan untuk sistem lain itu hanyaimport datetime
seperti yang diharapkandatetime
menjadi modul ...;)Saya mendapat masalah yang sama dan itu bukan solusi yang Anda katakan. Jadi saya mengubah "dari datetime import datetime" menjadi "import datetime". Setelah itu dengan bantuan "datetime.datetime" saya bisa mendapatkan seluruh modul dengan benar. Saya kira ini adalah jawaban yang benar untuk pertanyaan itu.
sumber