python编程
simuLeo
在软件中艰难探索的咸鱼
展开
-
Python 如何将多个装饰器合并成一个装饰器
Python 如何将多个装饰器合并成一个装饰器WHY为什么要合并多个装饰器?因为堆叠装饰器虽然说不是不行,但是随着项目越来越大,装饰器越堆越多,我们希望将一些关联性强的装饰器合并在一起,而不是像下面的代码一样,搞得像叠罗汉一样恶心例子:# 公司业务代码其中一个接口 【flask-restplus】class Goods(Resource) @staticmethod @...原创 2020-03-12 11:30:20 · 818 阅读 · 1 评论 -
[python面试题] 删除列表中所有的3和4
# 删除所有的3和4a = [3, 4, 5, 3, 3, 4, 5, 3, 4, 3, 5]# 0. 边遍历边删除列表里的元素的弊端,删掉一个,后面的元素会顶上,导致删不全a1 = a.copy()for i in a1: # print(i) if i == 3 or i == 4: a1.remove(i)print(a1)# 1. 遍历...原创 2018-04-28 16:10:06 · 2380 阅读 · 0 评论 -
[python面试题] 保持列表的原顺序并进行去重的5种方法
L = [4, 1, 7, 4, 4, 6, 2, 1, 6, 6],想办法去掉列表的重复元素,同时保持原来的排列顺序;# 第1种方法,利用集合去重,然后用原列表的index方法排序L = [4, 1, 7, 4, 4, 6, 2, 1, 6, 6]L1 = list(set(L))L1.sort(key=L.index)print(L1)print('\n')# 第2种方法...原创 2018-04-28 15:47:08 · 2098 阅读 · 0 评论 -
[python笔记] with语句和上下文管理
python中读写文件的语句是相当少的,代码如下:# 创建文件f = open('output.txt', 'w')# 写入内容进文件f.write('python')# 关闭文件f.close() 但是,这还是不够简洁,有可能会忘记写关闭文件的语句f.close(),python执行写入文件的操作是惰性的,因为读写文件都是io操作,所以执行任务处于较低的优先级,当前没有其...原创 2018-04-28 15:36:59 · 253 阅读 · 0 评论 -
[python的web框架对比] Flask蓝图和Django路由映射的区别?
1.flask是利用蓝图进行模块划分的,通过app装饰器注册模块蓝图,在主模块统一调用;2.Django路由映射是通过路由正则匹配映射到每一个模块的; 在django中,路由是浏览器访问服务器时,先访问的项目中的url,再由项目中的url找到应用中url,这些url是放在一个列表里,遵从从前往后匹配的规则。 在flask中,路由是通过装饰器给每个视图函数提供的,而且根据请求方式的不同可以一个url...原创 2018-04-27 15:00:31 · 1315 阅读 · 0 评论 -
[业务问题] 手机短信验证码如何保证安全性
1.手机短信验证码由web服务器的随机函数生成; 2.将验证码传给第三方平台的SDK,然后调用第三方平台的服务器发送短信验证码; 3.只有第三方发送短信验证码成功返回成功的状态码,web服务器才会存储自己生成的验证码; 4.用户获取短信验证码,输入验证码进行注册或者登录时,web服务器会对比用户输入的验证码和数据库的短信验证码,如果一致就通过验证,否则,无法通过验证; ...原创 2018-04-27 14:53:54 · 1253 阅读 · 1 评论 -
[python笔记]进程,线程和协程的对比
进程、线程、协程对比 请仔细理解如下的通俗描述有一个老板想要开个工厂进行生产某件商品(例如剪子) 他需要花一些财力物力制作一条生产线,这个生产线上有很多的器件以及材料这些所有的 为了能够生产剪子而准备的资源称之为:进程 只有生产线是不能够进行生产的,所以老板的找个工人来进行生产,这个工人能够利用这些材料最终一步步的将剪子做出来,这个来做事情的工人称之为:线程 这个老板为了提高生产率,想到3...原创 2018-04-26 16:57:16 · 1174 阅读 · 1 评论 -
[python笔记] 迭代器和生成器的区别
迭代器协议1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退)2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法)3.协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访...原创 2018-04-26 16:38:14 · 412 阅读 · 0 评论 -
[python面试题]深拷贝和浅拷贝的区别
深拷贝,浅拷贝非嵌套数据(不可变类型:整数,字符串,元组等)例子:a = 11copy.copy 和 copy.deepcopy 没有区别 都会开辟新空间 存储数据 有嵌套的数据 (可变类型:列表,字典)例子:a = [[1], {'2':2}]copy.copy没有办法保证数据的独立性,拷贝第一层的引用copy.deepcopy完全拷贝所有的层级,都会有自己的空间 不可变类型(元组,数字,字符串...原创 2018-05-10 21:32:11 · 1723 阅读 · 0 评论 -
[python面试题] 装饰器是什么,有什么功能,能用在什么业务场景?
概念:1.装饰器的实现是由闭包支撑的;2.装饰器本质上是⼀个python函数,它可以在让其他函数在不需要做任何代码的变动的前提下增加额外的功能;3.装饰器的返回值也是⼀个函数的对象,它经常用于有切面需求的场景,实现路由传参,flask的路由传参依赖于装饰器,浏览器通过url访问到装饰器的路由,从而访问视图函数获得返回的HTML页面; 应用场景:1.可以在外层函数加上时间计算函数,计算函数运行时间;...原创 2018-04-25 21:43:12 · 6509 阅读 · 0 评论 -
[python笔记] python的封装,继承,多态
面向对象的三大特征: 1. 封装:属性和方法放到类内部,通过对象访问属性或者方法,隐藏功能的实现细节.当然还可以设置访问权限; 2. 继承:子类需要复用父类里面的属性或者方法,当然子类还可以提供自己的属性和方法; 3. 多态:同一个方法不同对象调用同一个方法功能的表现形式不一样,例如:1.不同的两个对象,字符串的加法和整数的加法,同样是加法,实现的功能是不一样的;2.这两个对象之间没有任何直原创 2018-04-24 19:24:24 · 9667 阅读 · 5 评论 -
[python面试题] 什么是单例,单例有什么用,业务场景是什么?
单例概念: 单例是一个特殊的类,这个类只能创建一次实例,例子如下: 1.a = Std(name='leo'), b = Std(name='jack'),两者的指向都是name=‘leo’的对象; 2.windows中只有一个回收站,打开一次回收站只会出现一次窗口,双击第二次不会出现第二个窗口 ,这就是单例,对象不会重新创建,只会创建一次;单例的...原创 2018-04-25 21:21:18 · 2735 阅读 · 0 评论 -
[python笔记] Gil全局解释锁和线程互斥锁的关系
Gil全局解释锁延伸扩展 GIL:全局解释器锁。当我们使用多线程的时候,每一个进程中只有一个GIL锁,那么这多个线程中谁拿到GIL锁,谁就可以使用cpu(ps:多个进程有多个Gil锁,但每个进程中只有一个GIL),所以当python用cpython作为解释器的时候,多线程就不是真正意义上的多线程,属于伪并发的多线程原创 2018-04-24 17:04:32 · 1291 阅读 · 0 评论