要确定对象是否是一个类的实例,可使用isinstance:
class openobject():
pass
a=openobject()
print(isinstance(a,openobject))
>>>True
print(isinstance(openobject,a))
>>>False
如果想要知道一个对象属于哪个类,可以用__class__:
class openobject():
pass
a=openobject()
print(a.__class__)
>>
要确定一个类是否是另一个类的子类,可用内置方法issubclass:
class openobject():
pass
class a(openobject):
pass
print(issubclass(a,openobject))
>>>True
如果想要知道一个类的基类,可以用__bases__
class openobject():
pass
class a(openobject):
def pp():
pass
print(a.__bases__)
>>(,)
print(openobject.__bases__)
>>(,)
callable()判断函数是否可调用,对于函数,方法,lambda函数,类都是返回True,对于变量,列表,字典,字符串等返回False.
hasattr()函数用来判断对象中是否包含某个方法:
class A():
def pp(self):
pass
a=A()
print(hasattr(a,'pp'))
>> True
getattrr()函数用来获取对象中某个属性的值(可以是变量,也可以是方法):
class A():
def pp(self):
print('hello')
a=A()
b=getattr(a,'pp')
b()
>>hello
setattr() 函数可以给对象中的某个属性赋值