【面试】python部分 @ systemime | 2022-02-16T15:01:20+08:00 | 1 分钟阅读 | 更新于 2022-02-16T15:01:20+08:00

python面试题

装饰器

python基于闭包实现的语法糖,也是通常所说的面向切片编程,可以在不改变原程序的情况下改变/添加程序的行为或方法

缺点

  • 会改变原程序的属性,可以用functools.wraps解决
  • 作用域变量不会及时清理,但因为这个特性也可以用于一些特殊场景,如:计数、频率限制等

with底层实现

__enter____exit__方法

yield和yield from

yield相当于return,本质返回一个生成器

yield form相当于嵌套生成器,变成了一个迭代器

cc = [1,2,3]

def func(cc):
    yield from cc

for val in func(cc):
    print(val)

实现对list中dict进行去重

核心思路:dict不能用set,就转化为可以用set的方式

dict转字符串,set再转回来,json dumps不行可以用pickle进行序列化

Python的mixin

实际上是多个父类继承,获得多个父类的方法或属性

同步异步/阻塞非阻塞

© 2018 - 2022 systemime 的博客

Powered by Hugo with theme Dream.

---

avatar
关于我

systemime 的博客

记录一些生活与技术的事或思考

毕业于 🏫 山东科技大学泰山科技学院

目前职位为Python后端开发工程师

热爱代码,热爱开源

主要的技术栈是:

  • python
  • celery
  • django
  • shell
  • sql
  • go
  • nginx

爱好

  • 羽毛球
  • 编码
我的一些开源项目

计划或项目:

  • skill_test ➡️ 一个包含项目常用的django模板:常用脚本、单测方法、数据库连接池、异步请求池,restful风格的回调接口管理器 60%
  • Vbox ➡️ 一个基于k8s和docker的容器云平台,早期项目代码较简单 90%
  • YuQue-Assistant ➡️ 用于批量拉取语雀工作区文章,使用进程池+协程
  • 一个代理池 60%
  • simple_db_pool ➡️ 一个简单数据库连接池 100%
  • 一个电报消息转发脚本 90%
  • 使用flutter做一个app 计划中
  • 其他若干脚本(bilibili、微博图片视频下载、文件对比、图片颜色提取…)
其他

如果你喜欢我的博客、开源项目或者它们可以给你带来帮助,可以赏一杯咖啡 ☕ 给我。~

If you like my open source projects or they can help you. You can buy me a coffee ☕.~

PayPal

https://paypal.me/systemime

支付宝赞赏码

alipay

微信赞赏码

wechat

最好附加一下信息或者留言,方便我可以将捐助记录 📝 下来,十分感谢 🙏。

It is better to attach some information or leave a message so that I can record the donation 📝, thank you very much 🙏.