python 網(wǎng)絡(luò)編程宝磨,class唱捣,迭代器赊堪,文件操作
網(wǎng)絡(luò)編程
這部分還是不熟悉,主要查看一下scrapy網(wǎng)頁捕獲履澳,urllib, urllib2 socket socketserver 這些庫的方法和使用
class
構(gòu)造函數(shù) __init__
__getitem__
訪問元素
__delitem__
調(diào)用del函數(shù)刪除時調(diào)用嘶窄,可理解為析構(gòu)函數(shù)
__setitem__
賦值
__len__(self)
獲取長度
類之間的繼承怀跛,在新式類中,后續(xù)使用都使用新式類柄冲,注意使用super() 函數(shù)吻谋,在構(gòu)造函數(shù)中
迭代器
from collections import Iterator, Interable
可迭代對象和迭代器的區(qū)別:
比如 lst = [1, 3, 5]
lst 是一個可迭代對象,通過內(nèi)置函數(shù) iter() 能夠獲取一個迭代器现横,然后通過 next() 函數(shù)實(shí)現(xiàn)迭代
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以上版本)函數(shù)獲取迭代的值低千,如果是迭代器,__iter__
函數(shù)返回的就是迭代器自身馏颂,所以迭代器也是可以直接使用for來實(shí)現(xiàn)迭代的
迭代器是一次性消耗品:
在3.6版本的python中栋操,如果想復(fù)制迭代器,不能通過直接復(fù)制的方式饱亮,因為這是淺拷貝矾芙,需要使用深拷貝的方式
<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 就相當(dāng)于
f = open(path, mode)
在新版本中近上,文件流的讀取剔宪,不再需要 open ,read, write, close 這樣,文件流對象 f 是一種可迭代對象壹无,能夠直接使用for 循環(huán)迭代葱绒,只要沒有顯示的向文件中寫內(nèi)容,不關(guān)閉文件也是可以的斗锭,但是推薦最好在結(jié)束時關(guān)閉文件