如何检查对象的根/父类?例如
from PIL import Image as im
x = im.open('test.png')
type(x)
Out[]: PIL.PngImagePlugin.PngImageFile
#pseudocode:
isinstance_parent(x, PIL)
Out[]: True
我有一个列表,其中包含不同类型(PNG,JPEG等)的PIL图像对象。我希望能够检查哪些是PIL图像对象,以便稍后在脚本中将其关闭(这样它将允许我删除它们)。
我已经搜索了很多,但没有任何答案对我有用。多数指向使用isinstance(object,type)的某些变化,但这需要非常具体:
isinstance(x, PIL.PngImagePlugin.PngImageFile)
Out[]: True
但是图像可以是JPG,GIF,PNG等许多类型中的一种。我理想情况是希望能够查看是否属于PIL类。
我想过要这样做的方法...只需列出可能的每张图像,然后查看PIL如何对其进行分类。
或者类似这样的东西:
str(type(x))
Out[80]: "<class 'PIL.PngImagePlugin.PngImageFile'>"
if str(type(x)).split()[1].startswith('\'PIL'):
print('It is an image')
但是我觉得我应该缺少一种更加Python化的方式,对吗?
欢呼
答案 0 :(得分:1)
PIL图像继承自PIL.Image.Image
,因此您只需执行以下测试即可:
if isinstance(x, PIL.Image.Image):
pass # do stuff