python object和type
>>> issubclass(type,object)True
其次object是type的实例(x=object,A=type)
>>> isinstance(object,type)True
?规则1得出object是object的实例(B=object,M=object)
>>> isinstance(object,object)True
?规则2得出type是object的实例
>>> isinstance(type,object)True
?同样可以得到type是type自己实例
?
>>> isinstance(type,type)True
?PS:python中所有类都是自己本身的子类
>>> class A:... pass... >>> issubclass(A,A)True
?二、object和python中的对象和类
python中的所有对象都是object的实例,所有类都是object的子类(除了旧式类)
>>> class A:... pass... >>> type(A)<type 'classobj'>>>> isinstance(A,object)True>>> issubclass(A,object)False
?PS:新式类与旧式类的区别
声明上:
>>> class A(object):... pass... >>> class A:... pass...
? 规则:
旧式类是广度优先
class A: value="a"class B(A): passclass C(A): value="c"class D(B,C): passd=D()print d.value
结果为“a",搜索基类为深度优先
新式类:
class A(object): value="a"class B(A): passclass C(A): value="c"class D(B,C): passd=D()print d.value
?结果为“c",广度优先
PS:p y3.0中2种声明都为新式类,若要声明旧式类,括号中需制定为旧式类