new和init的区别
https://juejin.im/post/5add4446f265da0b8d4186af
https://www.nowcoder.com/questionTerminal/ab4b9c7553c3491ca84c0a62989260c0
- init是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值。
new是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例,是个静态方法。
即,new在init之前被调用,new的返回值(实例)将传递给init方法的第一个参数,然后init给这个实例设置一些参数。
实际上,init函数并不是真正意义上的构造函数,init方法做的事情是在对象创建好之后初始化变量。真正创建实例的是new方法。
new方法是静态方法,而init是实例方法。
Python2 和 Python3 的区别
- Python3使用 print 必须要以小括号包裹打印内容
- Python2中使用ascii编码,Python3中使用utf-8编码
- Python2中是raw_input()函数,Python3中是input()函数
- Python2中range(1,10)返回列表,Python3中返回迭代器
- Python2 中 unicode 表示字符串序列,str 表示字节序列;Python3 中 str表示字符串序列,byte 表示字节序列。
- Python3 中 / 表示真除,% 表示取余,// 结果取整;Python2 中带上小数点 / 表示真除,% 表示取余,// 结果取整。
常见HTTP状态码
https://www.runoob.com/http/http-status-codes.html
常见的状态码和意义:
_200 OK 请求正常处理完毕
204 No Content 请求成功处理,没有实体的主体返回
206 Partial Content GET 范围请求已成功处理
301 Moved Permanently 永久重定向,资源已永久分配新 URI
302 Found 临时重定向,资源已临时分配新 URI
303 See Other 临时重定向,期望使用 GET 定向获取
304 Not Modified 发送的附带条件请求未满足
307 Temporary Redirect 临时重定向,POST 不会变成 GET
400 Bad Request 请求报文语法错误或参数错误
401 Unauthorized 需要通过 HTTP 认证,或认证失败
403 Forbidden 请求资源被拒绝
404 Not Found 无法找到请求资源(服务器无理由拒绝)
500 Internal Server Error 服务器故障或 Web 应用故障
503 Service Unavailable 服务器超负载或停机维护
cookie 和 session 的区别?(存储位置和安全性)
https://www.cnblogs.com/xulb597/archive/2012/07/02/2573252.html
Session 是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;
Cookie 是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现 Session 的一种方式。
A.cookie 数据存放在客户的浏览器上,session 数据放在服务器上
B.cookie 不是很安全,别人可以分析存放在本地的 COOKIE 并进行 COOKIE 欺骗考虑到安全应当使用 session
C.session 会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能考虑到减轻服务器性能方面,应当使用 COOKIE
D. 单个 cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存 20 个 cookie
深浅拷贝
- 赋值:只是复制了新对象的引用,不会开辟新的内存空间。
- 浅拷贝:创建新对象,其内容是原对象的引用。
浅拷贝有三种形式: 切片操作,工厂函数,copy 模块中的 copy 函数
- 深拷贝:和浅拷贝对应,深拷贝拷贝了对象的所有元素,包括多层嵌套的元素。深拷贝出来的对象是一个全新的对象,不再与原来的对象有任何关联。
copy 模块中的 deepcopy 函数
例子:
import copy
a = [1, 2, 3, 4, ['a', 'b']]
b = a # 引用,除非直接给 a 重新赋值,否则 a 变则 b 变,b 变则 a 变
c = copy.copy (a) # 浅复制,只会拷贝父对象, 不会拷贝父对象中的子对象,所以若 a 的子对象变则 c 变,但是父对象变 c 不会变
d = copy.deepcopy (a) #深拷贝,完全拷贝,完全独立于原对象,a 变也不变
a.append (5) # 改变父对象
a [4].append ('c') # 改变父对象中的 ['a', 'b'] 子对象
"""
# 结果
a=[1, 2, 3, 4, ['a', 'b','c'],5]
b=[1, 2, 3, 4, ['a', 'b','c'],5]
c=[1, 2, 3, 4, ['a', 'b','c']]
d=[1, 2, 3, 4, ['a', 'b']]
"""
装饰器的作用和功能
A. 引入日志
B. 函数执行时间统计
C. 执行函数钱预备处理
D. 执行函数后的清理功能
E. 权限校验、缓存
_
字符串格式化
Python 里面 % d 表数字,% s 表示字符串,%% 表示一个 %;
单引号内嵌套单引号需要转义字符 /; 单引号内嵌套双引号不需要嵌套;
双引号内嵌套双引号需要转义字符 /;双引号内引用单引号不需要转义字符;
_