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