返回顶部

面试5

1 简要说明视图的作用

   在Django框架中视图是:定义完成各类对象所需功能的函数,接收请求,处理业务逻辑,返回结果

在MySQL数据中视图是:查询语句执行后返回的结果集,是对若干张基本表的引用,一张续表,查询语句执行的结果,不存储数据,方便操作,增强可读性,更加安全

 

2  deepcopy 和 copy的区别

deepcopy:包含对象里面的子对象的拷贝,原始对象的改变不会造成拷贝里的任何改变
copy:浅拷贝,只拷贝顶层元素,没有拷贝子对象,原始数据改变,拷贝后的对象也会改变

 

3 每天早上6点到12点每隔2小时执行一次 /usr/bin/httpd.sh 怎么实现

crontab -e
6-12/2 * * * /usr/bin/httpd.sh restart

 

 

4 介绍python中的with方法

with还可以很好的处理上下文环境产生的异常,基本思想是with所求值的对象必须有一个__enter__()方法,一个__exit__()方法。

紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,

这个方法的返回值将被赋值给as后面的变量。

当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法,

自动将文件关闭退出

 

5介绍下@classmethod @staticmethod @property区别

@classmethod:类方法装饰器,调用类中的方法装饰目标对象

@staticmethod:静态方法装饰器,是跟类对象没有多大联系的一个函数,被定义后可以被类对象调用

@property:将方法变成对象的一个属性,可以直接访问类对象的属性

 

6 介绍下python函数参数传递的类型

python中函数参数传递为传引用
对于不可变类型(如数值、字符串、元组等),由于值不可改变,传过去的效果类似C语言里面的传值
对于可变类型(如列表),值可以被修改,实现的效果类似C语言中的传引用

 

7 new 和 init的区别

__new__是在创建对象前调用,创建实例对象并返回实例对象

__init__在实例对象创建完成后调用,并对该对象初始化

 

8 介绍python中yield的用法

yeild具有阻塞函数输出结果,并记录本次执行所有数据(寄存器、时间片等)的功能,在next()或__next__函数作用下逐个输出所有数据
yield用在函数中,函数就是一个生成器,返回可迭代对象在for循环和next()函数配合下可以遍历所有对象
在线程中使用yield可以实现协程

 

9简述Django对http请求的执行流程

在接受一个Http请求之前的准备 
启动一个支持WSGI网关协议的服务器监听端口等待外界的Http请求,比如Django自带的开发者服务器或者uWSGI服务器。
当一个http请求到达服务器的时候 
服务器根据WSGI协议从Http请求中提取出必要的参数组成一个字典(environ)并传入Handler中进行处理。
在Handler中对已经符合WSGI协议标准规定的http请求进行分析,比如加载Django提供的中间件,路由分配,调用路由匹配的视图等。
返回一个可以被浏览器解析的符合Http协议的HttpResponse。

 

10 .List1 = [2, 3, 8, 4, 9, 5, 6] 使用for循环从大到小排序

 

 

11 Python如何实现单例模式

 

 

12 Inspect模块有什么用

inspect模块提供了几个有用的功能来帮助获取有关活动对象的信息,如模块,类,方法,函数,回溯,框架对象和代码对象。例如,它可以帮助您检查类的内容,检索方法的源代码,提取并格式化函数的参数列表,或获取显示详细回溯所需的所有信息。

这个模块提供了四种主要的服务:类型检查,获取源代码,检查类和函数,检查解释器堆栈

 

13什么是lambda函数?它有什么好处?

匿名函数,比较轻便,省去函数命名,常用于简单的逻辑运算,也常搭配filter和map函数等高级内建函数使用

 

14 Python如何捕获异常

使用try-except代码块,一般是为了让代码更加健壮,将有可能的代码放到try里,如果出现异常except就会自动捕获到,然后做出对应的处理

 

15 在Python中,list, tuple, dict, set有什么区别,主要应用在什么场景

List : 列表,有序,查找和插入的时间随着元素的增加而增加,占用内存少

Tuple:元组,用法类似列表,唯一不同是不可变(增,减元素)

Dict:字典,key-value键值对,无序,查找,插入速度快,但是耗内存

Set:集合,只有key的无序的,不重复的字典

这几个都是常用的啦,没有什么特定的场景,凭感觉都知道什么时候用哪种数据结构

 

 

 

16.请用自己的算法,合并如下两个list, 并去除重复的元素:

List1 = [2, 3, 8, 4, 9, 5, 6]

List2 = [5, 6, 10, 17, 11, 2]

 

17.GET和POST的区别(口述)

post安全,将信息封装到请求体内,get不安全,发送请求时会将信息暴露在url上

post和get都能发送或接收数据,但是语义上一般是post发送,get是从服务器获取

 

18.列举您使用过的Python中的编码方式(熟悉的在前)

Utf-8编码:在Unicode编码上进行了优化,节约内存

Unicode编码: 将所有语言统一到一套编码中,缺点是占用内存大

Ascll编码:不支持中文

gb2312编码:是中国规定的汉字编码,也可以说是简体中文的字符集编码

GBK:是 GB2312的扩展 ,除了兼容GB2312外,它还能显示繁体中文,还有日文的假名

Base64网络上最常见的用于传输8Bit字节代码的编码方式,具有不可读性,可用作简单的加密方式

 

19 Python3.5语言中enumerate的作用是什么?

Enumerate是python的内置函数常用于遍历序列中的元素及下标,一般搭配for语句一起使用

 

20如何给一个类方法传参?

       

 

posted @   Crazymagic  阅读(148)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示

目录导航