簡體   English   中英

Python isinstance()返回datetime.date錯誤

[英]Python isinstance() returning error with datetime.date

我正在嘗試編譯舊的2008代碼

import datetime

if isinstance(value, datetime.date):

但是我收到了一個錯誤:

isinstance()arg 2必須是類和類型的類,類型或元組Python可執行文件:/usr/bin/python2.6 Python版本:2.6.5

我錯過了什么?

我懷疑你導入了錯誤的日期時間,如:

from datetime import datetime

改為使用:

import datetime

我正在運行Python 2.7,偶爾也會遇到此錯誤。 如果您不需要嚴格的實例檢查,通常只需檢查類型就足夠了。

if id(type) and type(value) in (datetime.datetime, datetime.date):
   #somecode

為了更清楚地說明這一點,如果datetime指的是import datetime的模塊,或者datetimefrom datetime import datetime ,則必須小心,因為它們都有一個date屬性。

在第一種情況下, datetime.date引用可與isinstance一起使用的日期類:

import datetime
type(datetime.date)
Out[13]: type

在第二種情況下, datetime.date引用datetime類的date方法,該方法不能與isinstance一起使用,因此也就是錯誤。

from datetime import datetime
type(datetime.date)
Out[15]: method_descriptor

為了幫助避免這樣的錯誤,最好使用from datetime import date明確地導入和使用日期類from datetime import date然后使用isinstance(value, date)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM