對於python高階中的面試準備2:
(1)迭代器
迭代是訪問集合元素的一種方式。迭代器是乙個可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。
—可迭代物件:直接作用於for迴圈的資料型別:
一類是集合資料型別,如list、tuple、dict、set、str等;
一類是 generator,包括生成器和帶yield的generator function。
這些可以直接作用於for迴圈的物件統稱為可迭代物件
(2)判斷是否可以迭代
可以使用isinstance()判斷乙個物件是否是iterable物件,生成器也是一種迭代器:可迭代物件(iterable)和迭代器(iterator)。生成器都是iterator物件,但是list、dict、str都是可迭代,但是不是迭代器,可以使用iter()函式把可迭代物件變成迭代器
對於迭代器和可迭代物件的總結:
凡是可做用於for迴圈的物件都是iterable型別(可迭代物件)
凡是可做用於next()函式的物件都是iterator型別(迭代器物件)
集合資料型別如list、dict、str等是iterable但不是iterator,不過可以通過iter()函式獲得乙個 iterator物件。
(3)閉包(程式語言中的一種重要的語法)需要理解python中的引用----就是指標、位址的概念。
什麼是閉包:
閉包就是函式中定義函式,裡面的函式會使用外面函式的變數或者外面函式傳進來的引數等。內部函式就稱為函式閉包。
閉包的總結:
----1.閉包優化了變數,原來需要類物件完成的工作,閉包也可以完成
----2.由於閉包引用了外部函式的區域性變數,則外部函式的區域性變數沒有及時釋放,消耗記憶體
(4)裝飾器
裝飾器是程式開發中經常會用到的乙個工作,用好了裝飾器開發效率如虎添翼
def w1(func):
def test(
): ..
....
func(
)return
test
@w1def desc(
): pass
@函式名是python的一種語法糖
這段**的執行是這樣的:
第一步:desc() 執行desc函式的時候,相當於desc=w1(desc),此時的desc指向的是test,也就是執行test函式了,中間做了乙個函式執行轉移。
第二步:執行test,test函式中會執行desc函式的,這個就是函式裝飾器的使用方法
裝飾器的一些功能:
引入日誌
函式執行時間統計
執行函式前預備處理----相當於在函式之前新增一些驗證的操作或者其他的操作()
執行函式後清理功能
許可權校驗等場景
快取(5)裝飾器的型別
無引數的函式裝飾器(被裝飾的函式沒有引數)
有引數的函式裝飾器(被裝飾的函式有引數)
以上是針對於函式來說的,還有類裝飾器的
(7)python中的作用域
命名空間—也就是作用域:globals、locals。legb規則
python使用legb的順序來查詢乙個符號對應的物件
locals -> enclosing function -> globals -> builtins
深拷貝:深拷貝是對於乙個物件所有層次的拷貝(遞迴),也就是新開闢一段記憶體,和之前的東西是沒有關係。其中任意乙個發生改變時,都不會影響到另外一方,新舊之分
淺拷貝對不可變型別和可變型別的copy不同—具體使用的時候在看
(10)進製、位運算
進製的理解和表示,以及進製的轉換等操作
位運算:
&按位與
|按位或
^按位異或
~按位異或
《按位左移
按位右移
用途:直接操作二進位制,省記憶體,效率高
移位運算的操作:左移運算(左移1位)相當於乘以2(把原資料乘以2)
(11)私有化
xx: 公有變數
_x:單前置下劃線,私有化屬性或方法(私有化處理)
_x的變數、函式、類在使用from *** import *時都不會被匯入
(12)property裝飾器的作用
還記得裝飾器(decorator)可以給函式動態加上功能嗎?對於類的方法,裝飾器一樣起作用。python內建的@property裝飾器就是負責把乙個方法變成屬性呼叫的,簡單理解就是把裝飾的函式當成屬性來呼叫
前端面試準備 2
1.一次完整的http事務是怎麼樣的過程?1 通過網域名稱尋找ip位址 瀏覽器會首先搜尋自己的瀏覽器快取裡面有沒有dns快取,如果找到則結束,裡面有網域名稱對應的ip位址。如果瀏覽器快取沒有找到,則會繼續往作業系統中查詢是否有dns快取,如果找到則結束,否則進行下一步。瀏覽器會向本地的dns服務提供...
面試基礎知識準備
影象基礎知識 1.常用的影象空間。2.簡述你熟悉的聚類演算法並說明其優缺點。3.請描述以下任一概念 sift surf lda pca 4.請說出使用過的分類器和實現原理。5.random forest的隨機性表現在 6.graph cut的基本原理和應用。7.gmm的基本原理和應用。8.用具體演算...
2012面試準備 2012 10 26面試準備
c 1 什麼純虛函式?首先,二者申明不一樣。virtual void test void 虛函式 virtual void test void 0 純虛函式 其次,如果乙個類包含了乙個純虛函式 哪怕只有乙個是純虛函式 那麼它就是乙個抽象類 就是不能生成具體的物件!但如果類中只包含虛函式,那麼是可以定...