2019最新python面试题详解(应届生)
1 python三大利器是什么?
1》裝飾器
在不修改源代碼裝飾器的基礎(chǔ)上給其增加新的功能,多個裝飾器可以裝飾在同一個函數(shù)上。
2》迭代器
迭代器是訪問集合元素的一種方式。迭代器對象從集合的第一個元素開始訪問,直到所有的元素被訪問完結(jié)束。迭代器只能往前不會后退。
可迭代對象
迭代器提供了一個統(tǒng)一的訪問集合的接口。只要是實現(xiàn)了__iter__()或__getitem__()方法的對象,就可以使用迭代器進(jìn)行訪問。
序列:字符串、列表、元組
非序列:字典、文件
自定義類:用戶自定義的類實現(xiàn)了__iter__()或__getitem__()方法的對象
迭代器對象
什么是迭代器對象?
目標(biāo)有.iter()方法并且有.__next__方法的叫做迭代器對象
f.next()
創(chuàng)建迭代器對象
使用內(nèi)建的工廠函數(shù)iter(iterable)可以獲取迭代器對象:同時for循環(huán)可用于任何可迭代對象
for循環(huán)開始時,會通過迭代協(xié)議傳輸給iter()內(nèi)置函數(shù),從而能夠從迭代對象中獲得一個迭代器,返回的對象含有需要的next()方法。
#總結(jié):迭代器對象一定是可迭代對象,可迭代對象不一定是迭代器對象
3》python生成器
在 Python 中,使用了 yield 的函數(shù)被稱為生成器(generator)。
跟普通函數(shù)不同的是,生成器是一個返回迭代器的函數(shù),只能用于迭代操作,更簡單點理解生成器就是一個迭代器。
在調(diào)用生成器運(yùn)行的過程中,每次遇到 yield 時函數(shù)會暫停并保存當(dāng)前所有的運(yùn)行信息,返回 yield 的值, 并在下一次執(zhí)行 next() 方法時從當(dāng)前位置繼續(xù)運(yùn)行。
調(diào)用一個生成器函數(shù),返回的是一個迭代器對象。
2.談?wù)勀銓lask,Django ,ternado等的理解。
1》Flask框架
Flask是一種用python實現(xiàn)的Web框架。Flask顯著的特點是:它是一個“微”框架。”微”意味著Flask旨在保持核心的簡單,但同時又易于擴(kuò)展。默認(rèn)情況下,Flask 不包含數(shù)據(jù)庫抽象層、表單驗證,或是其它任何已有多種庫可以勝任的功能。然而,Flask 支持用擴(kuò)展來給應(yīng)用添加這些功能。眾多的擴(kuò)展提供了數(shù)據(jù)庫集成、表單驗證、上傳處理、各種各樣的開放認(rèn)證技術(shù)等功能。Flask的這些特性,使得它在Web開發(fā)方面變得非常流行。
2》Django框架
Django是一個開源的Web應(yīng)用框架,由Python寫成。采用MVC的軟件設(shè)計模式,主要目標(biāo)是使得開發(fā)復(fù)雜的、數(shù)據(jù)庫驅(qū)動的網(wǎng)站變得簡單。Django注重組件的重用性和“可插拔性”,敏捷開發(fā)和DRY法則(Don’t Repeat Yoursef)。在Django中Python被普遍使用,甚至包括配置文件和數(shù)據(jù)模型。它可以運(yùn)行在啟用了mod_python或mod_wsgi的Apache2,或者任何兼容WSGI(Web Server Gataway Interface)的Web服務(wù)器。
同時,Django是一個基于MVC構(gòu)造的框架。但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以 Django 里更關(guān)注的是模型(Model)、模板(Template)和視圖(Views),稱為 MTV模式。它們各自的職責(zé)如下:
模型(Model),即數(shù)據(jù)存取層
處理與數(shù)據(jù)相關(guān)的所有事務(wù): 如何存取、如何驗證有效性、包含哪些行為以及數(shù)據(jù)之間的關(guān)系等。
模板(Template),即表現(xiàn)層
處理與表現(xiàn)相關(guān)的決定: 如何在頁面或其他類型文檔中進(jìn)行顯示。
視圖(View),即業(yè)務(wù)邏輯層
存取模型及調(diào)取恰當(dāng)模板的相關(guān)邏輯。模型與模板的橋梁。
3》 Tornado
Tornado是一種 Web 服務(wù)器軟件的開源版本。Tornado 和現(xiàn)在的主流 Web 服務(wù)器框架(包括大多數(shù) Python 的框架)有著明顯的區(qū)別:它是非阻塞式服務(wù)器,而且速度相當(dāng)快。
得利于其非阻塞的方式和對epoll的運(yùn)用,Tornado 每秒可以處理數(shù)以千計的連接,因此 Tornado 是實時 Web 服務(wù)的一個 理想框架。
總結(jié)
以上是生活随笔為你收集整理的2019最新python面试题详解(应届生)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win7+Ubuntu双系统启动项修复总
- 下一篇: Adobe illustrator 调整