如何获得对象的根/父类?

时间:2019-04-01 23:28:27

标签: python

如何检查对象的根/父类?例如

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化的方式,对吗?

欢呼

1 个答案:

答案 0 :(得分:1)

PIL图像继承自PIL.Image.Image,因此您只需执行以下测试即可:

if isinstance(x, PIL.Image.Image):
    pass  # do stuff