第1題:
是否遇到過python的模組間迴圈引用的問題,如何避免它?
這是**結構設計的問題,模組依賴和類依賴
如果老是覺得碰到迴圈引用可能的原因有幾點:
1.可能是模組的分界線劃錯地方了
2.可能是把應該在一起的東西硬拆開了
3.可能是某些職責放錯地方了
4.可能是應該抽象的東西沒抽象
總之微觀**規範可能並不能幫到太多,重要的是更巨集觀的劃分模組的經驗技巧,推薦uml,腦圖,白板等等圖形化的工具先梳理清楚整個系統的總體結構和職責分工
採取辦法,從設計模式上來規避這個問題,比如:
1. 使用 「__all__」 白名單開放介面
2. 盡量避免 import
第2題:
python中如何定義乙個函式
有2種方法:
第1種:
def func(arg, *args, **kwagrs): #普通函式
func_body
return
第2種:
lambda x: x **2 #匿名函式
第5題:
寫乙個簡單的python socket程式設計。
socket是用來進行網路程式設計用的介面,網路程式設計分為伺服器端和客戶端
伺服器端**如下:
import socketsock = socket.socket(socket.af_inet, socket.sock_stream)
sock.bind(('localhost', 8001))
sock.listen(5)
while true:
conn, addr = sock.accept()
try:
conn.settimeout(5)
buff = conn.recv(1024)
if buff == '1':
conn.send('hello, client...')
else:
conn.send('please, go out...')
except socket.timeout:
print 'socket time out...'
finally:
conn.close()
客戶端**如下:
import socketimport time
sock = socket.socket(socket.af_inet, socket.sock_stream)
sock.connect(('localhost', 8001))
time.sleep(2)
sock.send('1')
print sock.recv(1024)
sock.close()
第6題:
src = "security/afafsff/?ip=123.4.56.78&id=45",請寫一段**用正則匹配出ip。
import resrc = "security/afafsff/?ip=123.4.56.78&id=45"
m = re.search('ip=(\d\.\d\.\d.\d)', src, re.s) # re.s 改變'.'的行為
print(m.group(1))
# 輸出結果
>>>
123.4.56.78
Python常見面試題
1 python生成隨機數 import random random.random 隨機生成0 1之間的數字 random.uniform 1,10 隨機生成1 10之間的數字 包括小數整數 random.randint 1,10 生成1 10之間的整數 random.randrange 1,10,...
python常見面試題
看兩個例子 python a 1 def fun a a 2 fun a print a 1 python a def fun a fun a print a 1 所有的變數都可以理解是記憶體中乙個物件的 引用 或者,也可以看似c中void 的感覺。這裡記住的是型別是屬於物件的,而不是變數。而物件有...
python常見面試題
有如下的一段 class a object def show self print base show class b a def show self print derived show obj b obj.show 如何呼叫類a的show方法了。方法如下 obj.class a obj.show...