python常見面試題

2022-08-19 12:18:07 字數 1699 閱讀 9000

第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 socket

sock = 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 socket

import 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 re

src = "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...