-
Python面試題:Python是怎樣管理內存的?
Python的內存管理是由私有heap空間管理的。所有的Python對象和數據結構都在一個私有heap中。程序員沒有訪問該heap的權限,只有解釋器才能對它進行操作。為Python的heap空間分配內存是由Python的內存管理模塊進行的,其核心API會提供一些訪問該模塊的方法供程序員使用。Python有自帶的垃圾回收系統,它回收并釋放沒有被使用的內存,讓它們能夠被其他程序使用。 【返回原文】
-
Python面試題: Post和get區別?
1、GET請求,請求的數據會附加在URL之后,以?分割URL和傳輸數據,多個參數用&連接。URL的編碼格式采用的是ASCII編碼,而不是unicode,即是說所有的非ASCII字符都要編碼之后再傳輸。 POST請求:POST請求會把請求的數據放置在HTTP請求包的包體中。上面的item=bandsaw就是實際的傳輸數據。 因此,GET請求的數據會暴露在地址欄中,而POST請求則不會。 2、傳輸數據的大小 在HTTP規范中,沒有對URL的長度和傳輸的數據大小進行限制。但是在實際開發過程中,…
-
Python面試題:Python是如何進行內存管理的?
一、垃圾回收: Python不像C++,Java等語言一樣,他們可以不用事先聲明變量類型而直接對變量進行賦值。對Python語言來講,對象的類型和內存都是在運行時確定的。這也是為什么我們稱Python語言為動態類型的原因(這里我們把動態類型語言可以簡單的歸結為對變量內存地址的分配是在運行時自動判斷變量類型并對變量進行賦值)。 二、引用計數: Python采用了類似windows內核對象一樣的方式來對內…
-
Python面試題:裝飾器的作用和功能?
引入日志 函數執行時間統計 執行函數錢預備處理 執行函數后的清理功能 權限校驗等場景 緩存 【返回原文】
-
Python面試題: 迭代器和生成器的區別?
迭代器是一個更加抽象的概念,任何對象,如果它的類有next方法和iter方法返回自身。對于string、list、dict、tuple等這類容器對象,使用for循環遍歷是很方便的。在后臺for語句對容器對象調用iter()函數,iter()是Python的內置函數。iter()會返回一個定義了next()方法的迭代器對象,它在容器中逐個訪問容器內元素,next()也是Python的內置函數。在沒有后續元素時,next()會拋出一個StopIterration的異常。 生成器(Generator)…
-
Python面試題:Python中的yield用法 ?
yield簡單說來就是一個生成器,這樣函數它記住上次返 回時在函數體中的位置。對生成器第 二次(或n 次)調用跳轉至該函 次)調用跳轉至該函數。 【返回原文】
-
Python開發面試題: Django 本身提供了 runserver,為什么不能用來部署?
runserver 方法是調試 Django 時經常用到的運行方式,它使用 Django 自帶的 WSGI Server 運行,主要在測試和開發中使用,并且 runserver 開啟的方式也是單進程 。 uWSGI 是一個 Web 服務器,它實現了 WSGI 協議、uwsgi、http 等協議。注意 uwsgi 是一種通信協議,而 uWSGI 是實現 uwsgi 協議和 WSGI 協議的 Web 服務器。uWSGI 具有超快的性能、低內存占用和多 app 管理等優點,并且搭配著 Ng…
-
Python面試題: 改變列表:元素賦值
使用索引標記來為某個特定的、位置明確的元素賦值。 >>> x = [1, 1, 1] >>> x[1] = 2 >>> x [1, 2, 1] 不能為一個位置不存在的元素進行賦值。 【返回原文】
-
Python面試題:ngnix的正向代理與反向代理?
正向代理 是一個位于客戶端和原始服務器(origin server)之間的服務器,為了從原始服務器取得內容,客戶端向代理發送一個請求并指定目標(原始服務器),然后代理向原始服務器轉交請求并將獲得的內容返回給客戶端。客戶端必須要進行一些特別的設置才能使用正向代理。 反向代理正好相反,對于客戶端而言它就像是原始服務器,并且客戶端不需要進行任何特別的設置。客戶端向反向代理的命名空間中的內容發送普通請求,接著反向代理將判斷向何處(原始服務器)轉交請求,并將獲得的內容返回給客戶端,就像這些內容原…
-
Python面試題:Django重定向你是如何實現的?用的什么狀態碼?
使用HttpResponseRedirect redirect和reverse 狀態碼:302,301 【返回原文】