1. 基础
如果要谈类,就需要从它的三大特性说起:
(1)封装:把方法封装成类,数据封装到对象中 应用案例:flask 请求上下文管理,把request、session 封装到requestcontext中
(2) 继承:多个类中有相同方法,把相同方法创建类,大家在继承父类。 应用案例:rest framework 视图类中
(3)多态:多个类中有相同的方法,但是他们的执行结果不一样

2.中等(双下方法)
new、init、call、str、dict、item、getattr、setattr、delattr、getitem、setitem、delitem

3.高级
(1)创建类有两种方式:class、type
(2)type
type 流程:创建类使用type的__init__方法,创建对象使用type的call方法,call调用类的new 和 init ,创建和初始化对象
(3)metaclass: metaclass 指定类是由谁创建的
类的父类指定了metaclass,那么它也继承

4. 类对象循环
(1)类对应的对象,怎么才能被循环
答: 类中必须有__iter__方法,方法的返回值是 iter() 或 yield

class Foo(object):
# def __iter__(self):
# return iter([1,2,3,4])

def __iter__(self):
yield 1
yield 2
yield 3

obj = Foo()
for ret in obj:
print(ret)

可迭代数据类型:元祖,字段,列表

五:子类和对象无法调用父类中的私有变量__age,但是也可硬调

obj._Foo__age

六:双下方法、什么是方法和函数
1. 双下方法
new __new__方法是用来创建对象的,_new__至少要有一个参数cls,代表要实例化的类,因为它的任务就是创建实例然后返回该实例对象
init
call
dict
getattr
setattr

2. 什么是方法和函数
对象调用方法
类调用为函数/模块函数

 

posted @ 2020-03-16 10:30  hbfengj  阅读(76)  评论(0)    收藏  举报