常见面试题
1 谈谈对 python GIL锁,对多线程有什么影响
2 谈谈你对同步,异步,阻塞非阻塞理解
同步:是指代码调用IO操作时,必须等待IO操作完成才返回的调用方式
异步:是指代码调用IO操作时,不必等待IO操作完成就返回的调用方式
阻塞:是指调用函数时候当前线程被挂起
非阻塞:是指调用函数时候当前线程不会被挂起,而是立即返回
3 什么是协程?
协成类似于一个可以暂停的函数(可以向暂停的地方传入值),可以在一个线程中进行来回切换
4 使用协程写一个斐波那契数列
def fib(n): index = 0 a, b = 1, 0 while 1: if index >n: break yield a a,b = a+b,a index +=1 if __name__ == '__main__': f= fib(5) print next(f) print next(f) # next()或者遍历都可以取值 # for item in f: # print item
5 装饰器功能?
在不改变原有代码的情况下,增加功能
6 使用装饰器写一个每调用一次函数加1的功能
1 2 3 4 5 6 7 8 9 10 11 12 13 | index = 0 def Total(func): def wraper(): func() global index index + = 1 print ( '调用了' ,index) return wraper @Total def aTest1(): pass |
7 __new__ 方法 ,写一个单例
8 django的生命周期和 简述Django对http请求的执行流程是一个问题
用户输入url 进行nginx进行转发,经过uwsgi(封装用户请求的信息),经过中间健,django的handler处理器进行路由映射,
业务逻辑处理(如果让你说的复杂一些,把权限,认证,节流都说一下),返回数据给浏览器
9 tcp和udp的却别
tcp是面向连接的(数据传输时需要建立3次握手),udp是面向数据报的(不建立连接,直接发送数据)
tcp 安全不容易丢包,因为要建立连接传输速度相对udp慢一些
udp 传输速度快,容易丢包
10 3次握手
11 osi七层模型
12 以下3个函数的用法
1 map函数(根据提供的函数对指定序列做映射),
2 filter函数会对指定序列执行过滤操作,reduce函数,
3 reduce函数会对参数序列中元素进行累积
13 正则表达式贪婪和费贪婪的区别,写一个匹配Ip地址的正则
1 | re.match(r '\d+\.\d+\.\d+\.\d+\.' ,ip) |
14 linux中查看文件权限的命令?修改权限的命令?查看内存的命令,实时查看进程的命令
ls -a 查看文件权限
chomx 修改权限
df du 查看内存
top 实时查看进程
15 介绍下restfuiAPI
16 什么是csrf攻击
17 *args 和**kwargs 使用方法?
18 django中间键?介绍下有什么作用
django 中间键 是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出
作用 :记录日志,登录认证权限
19 python类的特性?什么是封装?什么是继承?什么是多态?
封装:封装相关的方法和数据
继承:继承公共基类
多态:同样的方法被不同的对象调用会有不同的特性,如str+str(拼接字符串),1+1求和
20 @classmethod @staticmethod @property区别
21 new 和 init的区别
new创建对象
init初始化一个对象
22 迭代器和可迭代对象的区别 ?
迭代器: 可以被next()函数调用,并不断返回下一个值的对象称为迭代器 。它内部有 next 方法和 iter 方法
生成器:在python中一边循环一边计算的机制,称为生成器。特点:只有在调用时才会产生相应的数据。
23 进程,线程和协程的区别
进程时进行资源管理的,不能共享数据
线程是cpu最小的执行单元,各个线程内的数据是共享的
协程是由程序员在线程内调度的,又称微线程
24 python 中的反射
python
中反射是利用字符串的形式去对象中操作
hasattr(obj,str), getattr(obj,str) setattr(obj,str) delattr(obj,str)
25 什么是PEP8
26 django rest framework 中的功能,如权限管理,认证管理,序列化,访问频率控制
26 什么是队列,什么是栈,用类写一个
队列先进先出
栈先进后出
写法就是在类__init__中定义一个列表,在定义相应的方法对其进行操作
27 json.dump 和json.dumps的区别
json.dump 把json数据写入文件中
json.dumps把把数据转换成json格式
数据库 .mongo (了解即可)
1 主要看查询
2 事务
3 外键(一对一,一对多,多对多)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理