整理了Python面試后的筆記燃领,將面試過程中經(jīng)常被面試官問到的一些問題進(jìn)行了整理。希望能對你有所幫助锦援。
1猛蔽、Python基本語法
1、@staticmethod 和 @classmethod
Python中有三種方法灵寺,實例方法曼库、類方法(@classmethod)、靜態(tài)方法(@staticmethod)略板。
類方法的第一個參數(shù)是cls毁枯,表示該類的一個實例,靜態(tài)方法基本上和一個全局函數(shù)相同
2、迭代器和生成器
3距帅、閉包
閉包可以實現(xiàn)先將一個參數(shù)傳遞給一個函數(shù)右锨,而并不立即執(zhí)行,以達(dá)到延遲求值的目的碌秸。滿足以下三個條件:必須有一個內(nèi)嵌函數(shù)绍移;內(nèi)嵌函數(shù)必須引用外部函數(shù)中變量悄窃;外部函數(shù)返回值必須是內(nèi)嵌函數(shù)。
*4轧抗、args 和 kwargs
這兩個是Python中的可變參數(shù),用于接受參數(shù)的傳遞瞬测。args表示任何多個無名參數(shù)横媚,它是一個元組,kwargs表示關(guān)鍵字參數(shù)月趟,它是一個字典灯蝴。同時使用args和kwargs時,必須args在*kwargs之前孝宗。
5穷躁、鴨子類型:
在鴨子類型中,關(guān)注的不是對象的類型本身因妇,而是他是如何使用的问潭。例如,在不使用鴨子類型的語言中婚被,我們可以編寫一個函數(shù)狡忙,它接受一個類型為鴨的對象,并調(diào)用它的走和叫方法址芯。在使用鴨子類型的語言中灾茁,這樣的一個函數(shù)可以接受一個任意類型的對象,并調(diào)用它的走和叫方法谷炸。
6、@property 和 @setter
@property負(fù)責(zé)把一個方法變成屬性調(diào)用淑廊。在對實例操作時逗余,不暴露接口,而是通過getter和setter方法實現(xiàn)季惩。
7画拾、多進(jìn)程和多線程
8旗闽、類變量和實例變量
普通的變量(非類的變量),在被賦值后即變量存在。類的變量在class里def外适室,通過變量名能被賦值嫡意,在def里通過類對象可被賦值
9捣辆、裝飾器
裝飾器是一個工廠函數(shù)蔬螟,接受一個函數(shù)作為參數(shù),然后返回一個新函數(shù)汽畴,其閉包中包含被裝飾的函數(shù)旧巾。有了裝飾器,可以提取大量函數(shù)中與本身功能無關(guān)的類似代碼 ( 這塊在Flask中用于定義路由的@app.route忍些,就是一個很好的例子)鲁猩,達(dá)到代碼重用的目的“瞻樱可應(yīng)用于插入日志绳匀、性能測試、事務(wù)處理等方面炸客。
2戈钢、數(shù)據(jù)庫
1痹仙、MySQL基本語法
增:創(chuàng)建數(shù)據(jù)表
刪:
改:
查:
觸發(fā)器:是由INSERT薪铜、UPDATE和DELETE等事件來觸發(fā)某種特定操作众弓,滿足觸發(fā)條件時,數(shù)據(jù)庫系統(tǒng)會執(zhí)行觸發(fā)器中定義的語句隔箍,這樣可以保證某些操作之間的一致性谓娃。
3蜒滩、算法
1滨达、快排
算法:先從數(shù)列中取出一個數(shù)作為基準(zhǔn);然后將比該數(shù)大的數(shù)放到右邊俯艰,比該數(shù)小的數(shù)放到左邊捡遍;再對左右區(qū)間重復(fù)上一步驟。
2画株、冒泡
算法:每次比較兩個相鄰的元素,然后進(jìn)行排列。但是效率非常低谓传。
4、網(wǎng)絡(luò)
1良拼、post 和 get方法區(qū)別
[圖片上傳失敗...(image-1fd24c-1534946357521)]
2战得、Cookie 和 Session