python如何检查对象是否为给定类或其子类的一个实例?
可使用内置函数 isinstance(obj,cls)
。 你可以提供一个元组而不是单个类来检查某个对象是否为任意多个类当中某一个类的实例,例如 isinstance(obj,(class1,class2,...))
,也可以检查某个对象是否为 Python 内置类型当中某一个类型的对象,例如 isinstance(obj,str)
或 isinstance(obj,(int,float,complex))
。
请注意大多数程序不会经常对用户自定义类使用 isinstance()
。 如果是你自已开发的类,更正确的面向对象风格是在类中定义方法来封装特定的行为,而不是检查对象的类并根据它属于什么类来做不同的事。 例如,如果你有一个执行某些操作的函数:
defsearch(obj):ifisinstance(obj,Mailbox):
...# code to search a mailbox
elifisinstance(obj,Document):
...# code to search a document
elif...
更好的方法是在所有类上定义一个 search()
方法,然后调用它:
classMailbox:defsearch(self):
...# code to search a mailbox
classDocument:
defsearch(self):
...# code to search a document
obj.search()
以上是 python如何检查对象是否为给定类或其子类的一个实例? 的全部内容, 来源链接: utcz.com/z/520644.html