@[TOC]
1. python 一切皆对象
- python中的一切皆对象更加彻底
- 在python中的一切皆对象比Java中的一切皆对象更加彻底,Java中有class,也就是类的概念,object是class的一个实例。
- 函数和类也是对象
1.1 type 、object 和 class 的关系

list、str、dict、tuple、type都继承自object,所以object是最底层的(所有类)基类
type是自身的一个实例(通过指针实现),而object、list、str、dict、tuple都是type的对象,所以type创建所有对象
- type -> int -> 1 即 type 类生成 int,int 类生成了1
a = 1 print(type(a)) # <class 'int'> print(type(int)) # <class 'type'>
- 
type -> str -> ’abc’ 
 所以 type 可以生成 class(类), class 生成 object(对象)s = 'abc' print(type(s)) # <class 'str'> print(type(str)) # <class 'type'>
- type->Student->stu
class Student: pass
stu = Student()
print(type(stu))          # <class 'main.Student'>
print(type(Student))      # <class 'type'>
4. type -> Student -> stu
```python
class Student:
    pass
#Student继承了最顶层的object同时Student又是type的对象
Student.__bases__         # <class 'object',>
print(type(Student))      # <class 'type'>
#type是自身的对象,object是type的对象
print(type(type))        # <class 'type'>
print(type(object))      # <class 'type'>
#type继承了object类,最顶层的object的基类为空
print(type.__bases__)      # <class 'object'>
print(object.__bases__)     # ()1.2 python中对象的三个特征
- 身份 / 地址 ( id )
a = 1
print(id(a)) # a 的地址 1493816368
b = []
print(id(b)) # b 的地址 134273344- 类型
| 常见类型 | 内容 | 
|---|---|
| None(全局只有一个) | None | 
| 数值 | int、float、complex、bool (True / False) | 
| 迭代类型 | |
| 序列 | list、bytes、bytearry、memoryview、range、tuple、str、array | 
| 映射类型 | dict | 
| 集合 | set、frozenset | 
| 上下文管理类型 | with | 
| 其他 | 模块类型、class实例、函数类型、方法类型、代码类型、object对象、type类型、ellipsis类型、notimplented类对象 | 
- 数值 (变量名 -> 值)
2. 魔法函数
2.1 什么是魔法函数?
所谓魔法函数(Magic Methods),是Python的一种高级语法,允许你在类中自定义函数(函数名格式一般为__xx__),并绑定到类的特殊方法中。比如在类A中自定义__str__()函数,则在调用str(A())时,会自动调用__str__()函数,并返回相应的结果。- 注意
双下划线开头,如:init、getitem 
 不要尝试自己定义魔法函数
 用于增强类的特性
 独立存在,定义后不需要显示调用
2.2 python中的魔法函数一览

未完待续 ~










