python中 type object class之间的关系
2018-11-23 23:39
423 查看
关于type的理解
大家都知道,type是用来返回对象类型的,数字100是int类型,"hi"是str类型。
type(100) #<class 'int'> type("hi") #<class 'str'>
那么int和str是什么类型呢?惊奇的发现,int和str都是type类型。
type(int) #<class 'type'> type(str) #<class 'type'>
int和str都是python中内置的类,那我们自己创建的类呢?stu是Student类型,这个没问题。但是,Student居然也是type类型的。
所以,我们可以得出结论:类是type类的实例对象。也就是说,不管是python中内置的int、str类,还是我们自己创建的Student类,它们都是type类的实例对象。
class Student(): def __init__(self): pass stu = Student() print(type(stu)) #<class '__main__.Student'> print(type(Student)) #<class 'type'>
关于object的理解
我们知道,所有类都继承于object。
print(int.__bases__) #(<class 'object'>,) print(Student.__bases__) #(<class 'object'>,)
既然所有类都继承于object,那type类自然也继承于object了。而object的基类是空,也就是说,object没有继承其他的类了。
print(type.__bases__) #(<class 'object'>,) print(object.__bases__) #()
最后,我们发现object也是type类型,也就是说,object也是type的实例对象。
print(type(object)) #<class 'type'>
总结
看到这里,相信很多盆友已经晕了。
其实。。。用一句话概括就是这样:一切类都是type的实例 ,一切都继承object类
用图描述就是这样:
(图片来自波比老师)
相关文章推荐
- Python 的 type 和 object 之间是怎么一种关系?
- Python 的 type 和 object 之间是怎么一种关系?
- Python 的 type 和 object 之间是怎么一种关系?
- Python Class之间函数的调用关系
- object和type有什么区别?他们之间的关系是什么?
- python面向对象-理清object与type的关系
- Python——class的基础知识(Python的实例方法,类方法,静态方法之间的区别及调用关系)
- python class中遇到的TypeError: 'module' object is not callable
- 《Class、Object之间关系》原文链接https://www.zhihu.com/question/30301819/answer/47539163
- Python Type Class and Object的文章
- java中看class,interface之间的extends,implements的关系,,用F4,open type hierarchy
- python面向对象-理清object与type的关系
- type、object和class的关系
- Python开发:AttributeError: 'Class_Of_LoanUseCase' object has no attribute '_type_equality_funcs'
- 面向对象关系,type,object,base, class
- python面向对象-理清object与type的关系
- PowerMock.expectNew(Class<T> type, Class<?>[] parameterTypes, Object... arguments)
- Python 字符编码学习-ascii编码,Unicode和UTF-8之间的关系
- python "TypeError: object() takes no parameters"
- eclipse中java文件报错:The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files