Python Another Digest(2)

Python Another Digest(2)

Class相关

* __future__ 这种前后double underscore的成为魔法方法;
* 常用: __iter__ 用于 for 循环;
* __metaclass__ 元类: 类的类,类也是对象,一般父类为type;
* 子类复写 __init__ 函数时必须显示调用super(SubClass, self)来调用父类的init函数;
* __len__ 对应 len()
* __getitem__ 对应 A[index]
* __setitem__ 对应 A[index]=
* @property  把函数变成一个属性
property(read_f, write_f, del_f, doc)
相关项:__getattribute__        __getattr__  __setattr__    __delattr__
* __dict__ 用于防止 __setattr__ 重复调用

迭代器-生成器

迭代器: 具有next方法的对象

  • 优点: 一次获得一个(或少许几个) 需要迭代的对象,而非全部, 故节约内存;
  • it = iter() 获得迭代器

生成器

  • yield 关键词与return类似,但每次调用结果不同(函数有记忆)
  • 生成器也用于迭代
  • 生成器推导式 VS 列表推导式

标准库模块

  • reload 重载模块,与import不同的是,后者多次import也只初始化一次,前者每次都重载;
  • 包(package) 必须包含 init.py 文件
  • sys.std[in, out, error] 标准输入,输出,错误
  • os.system中 execv 调用外部函数
  • webbrowser 打开浏览器
  • frozenset 支持集合的集合, e.g. a.add(frozenset(b))
  • heapq堆,用列表实现, nlargest(n, iter) 得到第n大元素
  • shelve 把文件当字典(pickle的简单版)

正则表达式 re

  • re.[match, compile, split]
  • + * 默认最大匹配, +? *? 则最小匹配
    out = pattern.match(your_str)
    out.group(0)  #匹配的整个字符串
    out.group(1)  #第一个括号内的子串

    re.split('o(o)', 'foobar')
=>  ['f', 'o', 'bar']   # 括号内的内容保留

新版本

    for word in words:
        string += word
快于  ''.join(words)

file 文件读写

  • open(filename, ‘r w a b’) 分别代表:读, 写, 追加,二进制读
  • f.seek(offset) 移到第 offset 字节
  • with open(filename) as fd: #结束时自动关闭fd
  • with 其实是上下文管理器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值