今日考题
1.现有三个普通函数a,b,c都需要用户登陆之后才能访问。现需要你写一个装饰器校验用户是否登陆,并且用户只要登陆一次其他函数在调用时也无需再校验
def auth(func):
def inner(*args,**kwargs):
user_info = args[0]
if user_info.get('user'):
res = func(*args,**kwargs)
return res
else:
return False,'请先登录'
return inner
2.再次谈谈python垃圾回收机制
垃圾回收机制包括:
- 引用计数
当一个对象被引用一次,它的引用计数就会增加一,反之引用计数减少一,当引用计数为0是会触发垃圾回收机制。
- 标记-清除
标记清除算法主要用于解决循环引用的问题,标记阶段遍历所有对象如果对象的引用计数不为零则被标记为可达的,如果引用计数为零则不会被标记,清除阶段就是将没有被标记的清除。
- 分代回收
Python中根据对象存货的时间将其分为三代,年轻代、中年代、老年代,当年轻代的总数达到设定的阈值时就会被垃圾回收机制回收。
3.什么是进程,线程,协程,程序中如何依次创建/实现它们
进程是计算机资源分配的最小单位,线程是计算机系统能够进行运算调度的最小单位,协程是在单线程下实现并发,另外协程不是计算机的专有名词,是程序员为了实现单线程并发而起的名字。
4.js代码书写位置有几种,什么是事件,js如何绑定事件,常见的事件有哪些
JS代码可以写在JS文件中,可以写在HTML的head部,也可以写在body里,
常用事件绑定方法:
- 事件名=函数名
- var 事件名=函数
事件指当用户触发浏览器中的某个动作时执行某个功能。
常用的事件
onclick
ondblclick(双击)
onfocus
onblur(元素失去焦点)
onchange
onkeydown(某个键盘被按下)
onkeyup
onload(加载完成)
onmousedown(鼠标被按下)
onmousemove
onmouseout
onmouseover
onselect
onsubmit
5.什么是JQuery,它的基本语法是什么,利用jQuery查找标签的方式有哪些
jQuery是经过封装的JS代码,它将复杂的js语句简单化。$([js对象]).action()
基本选择器、层级选择器、基本筛选器、属性筛选器、表单筛选器