Python 中 一切皆对象

1.一切皆对象:

              动态语言与静态语言的区别:  python面向对象更加彻底。
              python中一切皆对象。函数,类,异常等等都是对象。
              可以动态修改python类中的属性。
                     
              类和函数属于python的一等公民。即:
	                       1.赋值给一个变量。
	                       2.可以添加到集合对象中。
	                       3.可以作为参数传递给函数。
	                       4.可以当作函数的返回值。

函数和类可以赋值给一个变量。 在这里插入图片描述
在这里插入图片描述
上图中的运行结果如下:
在这里插入图片描述

2.type、 object 、class的关系

在这里插入图片描述
其中 object是type的一个实例对象。
type却继承了object这个最顶层的类。
type又是自身的一个实例实例化对象。

#type->int->1
#type->class->obj
#object是最顶层基类
#type本身也是一个类,同时也是一个类


>>> a=1
>>> type(1)
<class 'int'>
>>> type(int)
<class 'type'>
>>> b="abc"
>>> type(b)
<class 'str'>
>>> type(str)
<class 'type'>
>>> class Student:
...    pass
...
>>> stu=Student()
>>> type(stu)
<class '__main__.Student'>
>>> type(Student)
<class 'type'>
>>> a=[1,2]
>>> type(a)
<class 'list'>
>>> type(list)
<class 'type'>
>>> Student.__bases__
(<class 'object'>,)
>>> class MyStudent(Student):
...   pass
...
>>> MyStudent.__bases__
(<class '__main__.Student'>,)

>>> type.__bases__
(<class 'object'>,)
>>> object.__bases__
()
>>> type(object)
<class 'type'>

考虑:为什么list是一个class的时候又把它作为一个一个对象呢,这就是python
的创建理念,因为在java或者c++的时候,类一旦被创建加载到内存当中的时候,是不能被轻易修改的,因为它已经编译好了,修改的技术复杂些。python为了灵活性,把他们都变成对象,因为对象我们可以随时修改它。

3Python中常见的内置类型

1.对象的三个特征

1身份
2类型
3值

2.内置类型

1.None(全局只有一个)
2.数值 int float complex(复数) bool
3.迭代类型
4.序列类型 list (bytes、bytearray、memoryview(二进制序列)) range tupe str array
5.映射(dict)
6.集合 set frozenset
7.上下文管理类型(with)
8.其它
             1)模块类型
             2)class和实例
             3)函数类型
             4)方法类型
             5)代码类型
             6)object对象
             7)type类型
             8)ellipsis 类型
             1)notimplemented类型

完结

下一篇 魔法函数

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章