Python面試題整理

2021-09-10 19:47:44 字數 1683 閱讀 9594

1、 

class parent(object):

x = 1

class child1(parent):

pass

class child2(parent):

pass

print parent.x, child1.x, child2.x

child1.x = 2

print parent.x, child1.x, child2.x

parent.x = 3

print parent.x, child1.x, child2.x

答案:

以上**的輸出是:

1 1 1

1 2 1

3 2 3

使你困惑或是驚奇的是關於最後一行的輸出是 3 2 3 而不是 3 2 1。為什麼改變了 parent.x 的值還會改變 child2.x 的值,但是同時 child1.x 值卻沒有改變?

這個答案的關鍵是,在 python 中,類變數在內部是作為字典處理的。如果乙個變數的名字沒有在當前類的字典中發現,將搜尋祖先類(比如父類)直到被引用的變數名被找到(如果這個被引用的變數名既沒有在自己所在的類又沒有在祖先類中找到,會引發乙個 attributeerror 異常 )。

因此,在父類中設定 x = 1 會使得類變數 x 在引用該類和其任何子類中的值為 1。這就是因為第乙個 print 語句的輸出是 1 1 1。

隨後,如果任何它的子類重寫了該值(例如,我們執行語句 child1.x = 2),然後,該值僅僅在子類中被改變。這就是為什麼第二個 print 語句的輸出是 1 2 1。

最後,如果該值在父類中被改變(例如,我們執行語句 parent.x = 3),這個改變會影響到任何未重寫該值的子類當中的值(在這個示例中被影響的子類是 child2)。這就是為什麼第三個 print 輸出是 3 2 3。

2、寫出執行結果:

上方**的結果:

1. [,,,,,,,,,

]下方**結果:

1. [,,,,,,,,,

]3.2 現在考慮有乙個 jsonline 格式的檔案 file.txt 大小約為 10k,之前處理檔案的

**如下所示:

現在要處理乙個大小為 10g 的檔案,但是記憶體只有 4g,如果在只修改 get_lines 函式而其他代

碼保持不變的情況下,應該如何實現?需要考慮的問題都有哪些? 

要考慮到的問題有:

記憶體只有 4g 無法一次性讀入 10g 的檔案,需要分批讀入。分批讀入資料要記錄每次讀入資料的位

置。分批每次讀入資料的大小,太小就會在讀取操作上花費過多時間。  

5.1 常用的 python 標準庫都有哪些?

os 作業系統,time 時間,random 隨機,pymysql 連線資料庫,threading 執行緒,multiprocessing

程序,queue 佇列。

第三方庫:

django 和 flask 也是第三方庫,requests,virtualenv,selenium,scrapy,xadmin,celery,

re,hashlib,md5。

常用的科學計算庫(如 numpy,scipy,pandas)。

Python 面試題整理

請用 python程式或你擅長的語言寫出下面問題的答案 1 乙個不固定長度的字串,找出連續最長的0或連續最長的1 提示1 1110001111 其中連續 3個1與3個0與4個1 程式反饋結果要是最長的是4個1 提示2 1010001010 程式反饋結果最長的是 3個0 提示3 題目問的是不固定長度 ...

python面試題整理(二)

前一篇博文博主總結了10道python面試題,戳這裡可以回看,本文繼續整理python面試題,希望能幫到大家 11.迭代器和生成器的區別 1 迭代器是乙個更抽象的概念,任何物件,如果它的類有next方法和iter方法返回自己本身。對於string list dict tuple等這類容器物件,使用f...

面試題整理

2014.3.19日整理 1.建立一張表hack 裡面就乙個欄位num,然後用sql語句從1開始插入到100,怎麼寫?oracle 答 1.create tablehack num number 建表語句 2.begin for i in1.100loop insert intohack num v...