2024年2024年Python面试题(真题)【进阶】_python爬虫面试题2024

列表属于可变序列,我们可以随意地增加、删减或者改变列表中的元素,长度大小不固定。由于列表可变,所以列表不能作为字典中的键key。

元组属于不可变序列,长度大小不固定,不能增加、删减或者改变元素,除非整体替换,因此,可以作为字典中的键key。
3. Django中间件的使用场景是什么?

中间件常用于权限校验、限制用户请求、打印日志、改变输出内容等多种应用场景,比如: 禁止特定IP地址的用户或未登录的用户访问我们的View视图函数
4. Python中生成器和迭代器的区别是什么?

1.迭代器是访问容器的一种方式,也就是说容器已经出现。我们是从已有元素拓印出一份副本,只为我们此次迭代使用。而生成器则是,而生成器则是自己生成元素的。
2.在用法上生成器只需要简单函数写法,配合yield就能实现。而迭代器真正开发中很难使用到。我们可以把生成器看做,python给我们提供的特殊接口实现的迭代器。
3.生成器是只能遍历一次的。
5. Python装饰器的原理和应用?

装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。在Python中,我们有多种方法对函数和类进行加工,比如在Python闭包中,我们见到函数对象作为某一个函数的返回结果。相对于其它方式,装饰器语法简单,代码可读性高。因此,装饰器在Python项目中有广泛的应用。
装饰器是设计模式的一种,被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。
6. GIL的限制有哪些?

全局解释器锁限制了cPython进程中的多个线程,同一时间只有一个线程能够占用这个锁,防止一块内存区域同时被多个线程访问修改
7. 解决 GIL 的方法?

1. 使用多进程  
 多个Python进程有各自独立的GIL锁,互不影响。
2. 使用其他 Python 解释器  
 换其他的 Python 解释器,比如 pypy
3. 仍然使用多线程  
 因为在 IO 密集型任务中,多线程的『鸡肋』影响不大
4. 使用 C 扩展模块  
 还有一种就是调用C语言的链接库
  1. Python实现多进程的几种方式是什么
  2. os.fork()
  3. 使用multiprocessing模块: 创建Process的实例,传入任务执行函数作为参数
  4. 使用multiprocessing模块: 派生Process的子类,重写run方法
  5. 使用进程池Pool
  6. 什么是序列化和反序列化?

最后

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值