python高级篇(下)

元类及迭代器生成器

  • __getattr__和__getattribute__魔法方法
    • getattribute 是一个优先级更高的魔法方法
  • 属性描述符
    • 介绍
    • 协议:数据属性描述符(_get_, _set_); 非数据属性描述符(_get_)
    • 使用类方法创建描述符
    • 使用属性类型创建描述符
      属性描述符
元类metaclass
  • 元类实际上就是创建类的类;
  • type()创建元类
    • 第一个参数:name表示类名称;
    • 第二个参数:bases表示继承对象父类,用元组类型表示(元组单元素使用逗号)
    • 第三个参数:attr表示属性,这里可以填写类属性,类方法、静态方法等,采用字典格式,key为属性名,value为属性值。
迭代器
  • 可迭代对象:
    可以用for循环遍历的对象都是可迭代对象。
    • str,list,tuple,dict,set等都是可迭代对象;
    • generator,包括生成器
  • 判断是否可迭代 __iter__
  • 迭代器
  • 可迭代对象与迭代器的区别
生成器
  • python中一边循环一边计算的机制,称为生成器。
  • 为什么要有生成器?
  • 如何创建生成器

列表推导式
元组推导式 生成器表达式
(i for i in range(100))
yield ###

生成器

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值