issubclasss/type/isinstance/callable

issubclass() :
  方法用于判断第一个参数是否是第二个参数的子子孙孙类。

复制代码
语法:issubclass(sub, super)

检查 sub 类是否是 super 类的派生类

class A:
pass

class B(A):
pass

print issubclass(B,A)
复制代码
type()
  给你一个参数,判断对象是不是由某一个指定类? –> type(obj) == Foo
实例
isinstance()
  来判断一个对象是否是一个已知的类型,类似 type()。

实例

callable()
  1, 用于检查一个对象是否是可调用的。如果返回 True,object 仍然可能调用失败;但如果返回 False,调用对象 ojbect 绝对不会成功。

  2, 对于函数, 方法, lambda 函式, 类, 以及实现了 call 方法的类实例, 它都返回 True。

  3., 类对象都是可被调用对象,类的实例对象是否可调用对象,取决于类是否定义了 __call__ 方法。

复制代码

class A: #定义类 A
pass

callable(A) #类 A 是可调用对象
True
a = A() #调用类 A
callable(a) #实例 a 不可调用
False
a() #调用实例 a 失败
Traceback (most recent call last):
File “<pyshell#31>”, line 1, in
a()
TypeError: ‘A’ object is not callable

class B: #定义类 B
def call(self):
print(‘instances are callable now.’)

callable(B) #类 B 是可调用对象
True
b = B() #调用类 B
callable(b) #实例 b 是可调用对象
True
b() #调用实例 b 成功
instances are callable now.