python常见面试题
第1题:
是否遇到过python的模块间循环引用的问题,如何避免它?
这是代码结构设计的问题,模块依赖和类依赖
如果老是觉得碰到循环引用可能的原因有几点:
1.可能是模块的分界线划错地方了
2.可能是把应该在一起的东西硬拆开了
3.可能是某些职责放错地方了
4.可能是应该抽象的东西没抽象
总之微观代码规范可能并不能帮到太多,重要的是更宏观的划分模块的经验技巧,推荐uml,脑图,白板等等图形化的工具先梳理清楚整个系统的总体结构和职责分工
采取办法,从设计模式上来规避这个问题,比如:
1. 使用 “__all__” 白名单开放接口
2. 尽量避免 import
是否遇到过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 #匿名函数
第3题:
请写出一段Python代码实现删除一个list里面的重复元素
>>> L1 = [4,1,3,2,3,5,1]
>>> L2 = []
>>> [L2.append(i) for i in L1 if i not in L2]
>>> print L2
[4, 1, 3, 2, 5]
第4题:
Python是如何进行内存管理的?
python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时,这个对象的引用计数为0时,它被垃圾回收。所有这些都是自动完成,不需要像C一样,人工干预,从而提高了程序员的效率和程序的健壮性。
第5题:
写一个简单的Python socket编程。
socket是用来进行网络编程用的接口,网络编程分为服务器端和客户端
服务器端代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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() |
客户端代码如下:
1 2 3 4 5 6 7 8 | 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。
1 2 3 4 | import re src = "security/afafsff/?ip=123.4.56.78&id=45" m = re.search( 'ip=(\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3})' , src, re.S) # re.S 改变'.'的行为 print (m.group( 1 )) |
>>>
123.4.56.78
标签:
python
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析