最近学习Python知识发现忘记的很快而且每次找都比较麻烦,所以特意开始写笔记记录
里面都是一些个人整理收集觉得有用或者面试频率比较高的知识点,希望对大家有用,
不定期整理
具体链接
一,Python中_new__()与_init__()的区别
- _new__()用于创建实例,_init__()用于初始化实例,
- _new__()至少有一个cls,代表当前类;_init()至少有一个参数self,就是这个__new()返回的实例,_init__()在_new__()的基础上完成一些初始化的操作。
- _new__()必须有返回值,返回实例对象;_init__()不需要返回值。
二,Python列表[1,2,3,4]有多少种排列组合方式?
import itertools
lists = [1,2,3]
for i in itertools.permutations(lists,3):
print(i)
运行程序输出:
(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)
三,Python装饰器实现简单单例模式
def singleton(cls,*args,**kwargs):
instance = {}
def _singleton()
if cls not in instance:
instance[cls] = cls(*args,**kwargs)
return instance[cls]
return _singleton
@singleton
class Test(object):
def __init__(self):
self.name = "Admin"
if __name__ == "__main__":
P1 = Test()
P2 = Test()
print(P1,"\n",P2)
print(P1==P2)
运行程序输出:
<__main__.Test object at 0x000001919D1C47B8>
<__main__.Test object at 0x000001919D1C47B8>
True
四,@property装饰器的作用?
- 定义私有类属性
将property与装饰器结合实现属性私有化(更简单安全的实现get和set方法)
class Student(object):
@property #相当于property.getter(score) 或者property(score)
def score(self):
return self.score
@score.setter #相当于score = property.setter(score)
def score(self,value):
if not isinstance(value,int):
return ValueError("Score must be an integer")
if value < 0 or value > 100:
return ValueError("Score must between 0~100")
if __name__ == "__main__":
stu = Student()
stu.score = 78 #相当于setter(score)设置分数
print(stu.score) #相当于getter(score)获取分数
运行程序输出:
78
五,如何将字典的键值对互换?
- 遍历方法
d1 = {"A":8,"B":65,"C":56}
d2 = {}
for key,value in d1.items():
d2[value] = key
print(d2)
- 字典推导式
d1 = {"A":8,"B":65,"C":56}
d2 = {key:value for value,key in d1.items()}
print(d2)
- zip函数
d1 = {"A":8,"B":65,"C":56}
d2 = dict(zip(d1.values(),d1.keys()))
print(d2)
运行程序输出:
{8: 'A', 65: 'B', 56: 'C'}
六,网络协议HTTP与HTTPS区别?
HTTP:是互联网上应用最广泛的一种网络协议,一个客户端和服务器请求应答的标准,用于从WWW服务器传输超文本到本地浏览器的传输协议。
HTTPS:是以安全为目标的HTTP通道,简单讲就是HTTP的安全版,即HTTP加入了SSL层,因此加密的详细内容就需要SSL。HTTPS 协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性
七,JSON与XML的区别?
- JSON
{
"name":"Tony",
"score":89,
"school":"清华”
}
- XML
<student>
<name>Tony</name>
<score>89</score>
<school>清华</school>
</student>
XML是一种扩展标记语言,可用来标记数据,定义数据类型,但XML不能描述数组;
JSON是一种轻量级数据交互格式,与Python中的字典非常相似,都是key-value的形式,而且JSON,dict可以通过dumps,loads互转。
八,MySQL如何备份和恢复数据?
- 备份库
#语法:mysql -h (数据库地址) -u (用户名) -p (数据库名) > 目录名:/xxx.sql
#windows下快捷键win + R 输入cmd回车(确认)在交互环境输入下面语句然后回车:
mysql -h localhost -u root -p mydb > D:/backup.sql
- 恢复库
#恢复的话很简单只需要将">"改为"<"即可,如下:
mysql -h localhost -u root -p mydb < D:/backup.sql
注意!
localhost代表你本机的IP地址,如果你的mysql在别的服务器上那就是服务器的IP地址,因为这里我mysql在我电脑上所以直接localhost即可,
root 一般默认即可,无需更改
mydb就是我自己建的库名,
这个代表你将要备份数据库到哪个路径下名字是什么,后缀以.sql结尾
这里需要注意的是如果你有一个备份需要恢复到某个库(比如mydb),当这个库不存在的时是需要你先建立一个mydb库才能恢复的