分类目录归档:Interview Question

[ python骨架frame ]


相当于当前运行时的帧。

源代码

import inspect
from objprint import op

def f():
    frame = inspect.currentframe(),
    op(frame, honor_existing=False, depth=2)

f()

输出out

(
  <frame 0x23376b59f00
    .f_back = <frame 0x23376c45580 ... >,  # 调用他的frame是谁 就是上一个人
    .f_builtins = { ... },   # 当前frame对应的内置

< Read more >

[ python codeobject ]


一. 1.所有python写的代码都被变异成了codeobject

print(f.__code__)

co_code保存真正的byte code 使用二进制保存的,通俗表达也能理解为他的汇编, 不一般使用dis.dis()来查看汇编

code = f.__code__
code.co_code

二. co_name 函数名字 co_filename 文件的路径 co_lnotab maping 每一个字节码对应的源代码,对应的行数

co_argcount # 参数数量, 函数重载机制相关(除了, *)之外的传参

co_posonlyargcount 函数定义的不用制定key名字的传参

< Read more >

[ python虚拟机字节码 ]


python虚拟机和字节码

底层如何工作,当你每次调用函数,或者运行python的时候,
会建立一个新的frame框架, 然后在这个环境下会一行一行的运行bytecode, 
每一条bytecode在c语言里面都有相对应的代去执行,每一个frame里面,
python会又一个strak就是一个栈,
bytecode跟这个栈进行交互当然也会和这个code obj里面的东西进行交互 

< Read more >

[ 开发场景题 ]


最近也看了不少面经,整理出了10个比较好的场景题,后续会持续分享场景题,请大家持续关注。

  • 一个外卖平台上有一个外卖单子,现在有多名骑手想接这一单,如何保证只有一个骑手可以接到单子?
  • 如何把一个文件快速下发到100w个服务器?
  • 给每个组分配不同的IP段,怎么设计一种结构使的快速得知IP是哪个组的?
  • 典型TOPk系列的问题:10亿个数,找出最大的10个。等(10万个数,输出从小到大?有十万个单词,找出重复次数最高十个?)
  • 让你设计一个微信发红包的api,你会怎么设计,不能有人领到的红包里面没钱,红包数值精确到分。
  • 分布式多个机器生成id,如何保证不重复?
  • 扫码登录是如何实现的?
  • 分布式集群中如何

< Read more >

[ SQLAlchemy关系 ]


在 SQLAlchemy 中,engine、metadata、table、column 和 mapper 是用来构建和管理数据库模型的不同概念,它们之间有着一定的关系。

Engine:

  • Engine 是 SQLAlchemy 中的核心概念之一,它代表着数据库的底层连接。Engine 负责与数据库建立连接,并且执行 SQL 语句。

Metadata:

  • Metadata 是用来存储数据库模型元数据的容器。它包含了数据库中所有表的描述信息,例如表的名称、列的信息等。

Table:

  • Table 表示数据库中的一张表格,它是由 metadata 定义的。每个 Table 对象通常对应着数据库中

< Read more >

[ Sql题目 ]


第二高的薪水

已解答 中等 相关标签 相关企业 SQL Schema Pandas Schema Employee 表:

Column Name Type
id int
salary int

在 SQL 中,id 是这个表的主键。 表的每一行包含员工的工资信息。

查询并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null(Pandas 则返回 None) 。 查询结果如下例所示。

示例 1:

输入: Employee 表:

id salary
1 100
2 200
3 300

输出:

Second

< Read more >

[ fastapi基础面试题 ]


FastAPI有以下几个优势:

高性能:FastAPI基于Starlette框架构建,利用了Python 3.7+中的异步特性,使得它能够处理高并发的请求。它使用异步请求处理框架uvicorn,性能比传统的基于线程或进程的服务器更高。

快速开发:FastAPI提供了一个简洁、声明性的语法,使得开发者能够快速地构建Web API。它支持自动进行请求参数验证和文档生成,减少了繁琐的手动操作,提高了开发效率。

强大的类型提示和自动文档生成:FastAPI利用Python的类型提示功能,能够在运行时自动验证请求和响应数据的类型,并生成详细的API文档。这使得团队协作变得更加容易,同时也方便了前后端的对

< Read more >

[ 计算机网络面试题[1] ]


一.<基础>

1. post与get

restful风格 get动作一般表示获取数据用 post 动作表示创建数据用 put 动作表示修改数据用 delete 动作表示删除数据用

2. get长度限制?

协议上是没有限制 但是浏览器是有限制的, 不同浏览器的限制长度不同

3. nginx

4. docker commit?

5. linux 的top , 开放端口命令

二.<项目>

1. 上一家公司是做什么, 主要业务是什么, 做过哪些项目, 项目使用了哪些技术, 在最近这个项目中担任什么角色, 是核心开发还是辅助开发

○ 上一家公司是做智能手写笔,围绕开发对应的app

< Read more >

[ Flask基础面试题目 ]


Django 和 SQLAlchemy 之间比较

1. Django

django的orm是活动记录的方式来实现的, 数据库中的每行数据都直接隐射到代码对象中

2. sqlalchemy

SQLAlcyhemy 是数据映射实现,数据库结构和对象结构之间存在间隙,必须使用另外的持久层来保持与数据库的交互(例如保存对象),不会捆绑并强迫严格遵照活动记录来考量。适用于复杂的查询。

总结

Django 适用于所有常规 CRUD 操作。会自动生成主键,会自动提交等。Django Model 更简洁一些。例如对于类关联,Django 只要直接声明外键,就自动产生关联对象,而 SQLAlcyhemy

< Read more >