对Python"一切皆对象"的小参悟
写在前面
若有误区请大神不吝指正,以免带偏了如我者的弱鸡们
据闻对此不再懵逼后,于函数以及高阶函数编程的进阶有益
类:又称对象,由类创建的个体被称为实例
名言名句”一切皆对象(一切皆类,一切都是模板)”
a. 溯源的规则就一项:由谁创建,即模板是谁
b. 补充一下Python解释器中内置的标准类型(就列举这些吧,基本都见过,没见过的就算了,于此不重要)
- None
- 数字类型:int float complax(复数) bool
- 迭代类型:generator
- 序列类型:list tuple range str bytes
- 集合类型:set frozenset
- 映射类型:dict
- 上下文管理器类型:with
- 以数字123为例(其余类型类似)溯源,它是由int类创建的,不信你看
>>> type(123) <class "int">
- int由type类创建,不信你看
>>> type(int) <class "type">
- type由type类创建,没错,就是自己创建自己,不信你看
>>> type(type) <class "type">
- 自建个普通类再看看
class Persion: pass
>>> type(Persion) # 由type类创建 <class "type">
- 特殊的类,基类object
>>> type(object) # 由type类创建 <class "type">
小结1:类 int、type、Persion、object 都是由type创建的
证明object是一切类的基类
- int、type、Persion的父类都是object,不信你看
>>> int.__bases__ # 查看继承的父类,返回一个tuple (<class "object">,) >>> type.__bases__ (<class "object">,) >>> Persion.__bases__ (<class "object">,)
- object没有父类,不信你看
>>> object.__bases__ ()
总结:一切皆对象,一切皆继承自object
- 类都是由type创建的,包括自己创建自己,且继承自object
- object是一切类的父类,同时object也是type的创建的
名言名句”先有鸡还是先有蛋”
- 先有type还是先有object?