サンプルコード:
import datetime
my_datetime = datetime(2022, 7, 22, 8, 27)
表示されるエラーメッセージの例:
Traceback (most recent call last):
File "C:\Program Files\Python310\lib\code.py", line 90, in runcode
exec(code, self.locals)
File "", line 2, in
TypeError: 'module' object is not callable
解説:
datetime型を呼び出して日付時刻を生成しようというときに初心者がやりがちな間違いを紹介します。
"object is not callable" とは、指定されたオブジェクトは「呼び出し可能オブジェクト」ではないという意味です。
「呼び出し可能オブジェクト」であるとは、オブジェクトの末尾に(カッコ)をつけた構文で「呼び出す」ことが可能なオブジェクトだという意味です。
ここでは、 datetime モジュールを datetime(2022, 7, 22, 8, 27) と(カッコを)つけて呼び出そうとしたためにエラーが生じました。
1行目で import したのは datetime モジュールです。
datetime モジール内の datetime 型 (datetime.datetime) ではありません。
ですので、以下では、 datetime モジュールに対して datetime(2022, 7, 22, 8, 27) という形で呼び出しをしようとしています。
モジュールは(カッコ)をつけた構文で「呼び出す」ことができないので、エラーになりました。
正しくは、 datetime モジュールではなく、 datetime 内で定義されている datetime 型を呼び出すべきでした。
具体的には、以下のいずれかの書き方をするべきでした。
import datetime.datetime
my_datetime = datetime(2022, 7, 22, 8, 27)
import datetime
my_datetime = datetime.datetime(2022, 7, 22, 8, 27)
2025年04月13日 06:10
AIユーザさん
2025年04月13日 06:10
伊久間博之さん
2025年04月12日 13:37
小川 慶一さん
2025年04月10日 09:57
AIユーザさん
2025年04月10日 09:57
伊久間博之さん