美文网首页
2017.6.16-18

2017.6.16-18

作者: 铁拳宝宝爱芝麻 | 来源:发表于2017-06-18 19:03 被阅读0次

    python 网络编程,class,迭代器,文件操作

    网络编程

    这部分还是不熟悉,主要查看一下scrapy网页捕获,urllib, urllib2 socket socketserver 这些库的方法和使用

    class

    构造函数 __init__
    __getitem__ 访问元素
    __delitem__ 调用del函数删除时调用,可理解为析构函数
    __setitem__ 赋值
    __len__(self) 获取长度

    类之间的继承,在新式类中,后续使用都使用新式类,注意使用super() 函数,在构造函数中

    迭代器

    from collections import Iterator, Interable
    可迭代对象和迭代器的区别:
    比如 lst = [1, 3, 5]
    lst 是一个可迭代对象,通过内置函数 iter() 能够获取一个迭代器,然后通过 next() 函数实现迭代
    it = iter(lst)
    lst 是一个可迭代对象,it是一个迭代器
    for key in lst 可迭代对象,能够直接使用
    对于迭代器,也能够直接使用
    for key in it
    或者
    <code>try:
    while True:
    print it.next()
    except StopIteration:
    break</code>
    for 就是 python 使用迭代对象的一个语法糖,首先通过可迭代对象的__iter__ 获取迭代器,然后通过 __next__(3.x版本),next(2.6以上版本)函数获取迭代的值,如果是迭代器,__iter__函数返回的就是迭代器自身,所以迭代器也是可以直接使用for来实现迭代的

    迭代器是一次性消耗品
    在3.6版本的python中,如果想复制迭代器,不能通过直接复制的方式,因为这是浅拷贝,需要使用深拷贝的方式
    <code>
    from copy import deepcopy
    it = iter(lst)
    it2 = deepcopy(it)</code>
    这样就能将 it 迭代器保存下来

    文件操作

    open, read, write, close, seek, tell, readline, readlines, writelines
    f = open(path, mode)
    mode :r, w, +, a, b
    还有一种写法,就是
    with open(path, mode) as f 就相当于
    f = open(path, mode)

    在新版本中,文件流的读取,不再需要 open ,read, write, close 这样,文件流对象 f 是一种可迭代对象,能够直接使用for 循环迭代,只要没有显示的向文件中写内容,不关闭文件也是可以的,但是推荐最好在结束时关闭文件

    相关文章

      网友评论

          本文标题:2017.6.16-18

          本文链接:https://www.haomeiwen.com/subject/haqwqxtx.html