Django-1.概论和python语法
- Django使用Python创建的,Youtube、Instagram;
- 可以作为Web、APP、小程序等各种程序的后端;
- 项目运行瓶颈:数据库查询、网络带宽/延迟、硬盘读写速度等;
- 计算密集型的模块使用可以用C/C++实现,然后编译成动态链接库再import进来;
- 计算密集型的微服务可以通过thift等工具对接,微服务的Server端代码可以用C/C++语言实现;
- 数据库(服务器端)
- disk:本地、云盘;
- mysql:代码文本等;
- Redis:属于内存数据库,用来存储数据(内存中的map)
数据库(客户端)
- web storage
- disk内存
深拷贝和浅拷贝
浅拷贝:【1‘43’22】b=a[:],把a的第一层复制过去;之后改变b,a不会发生改变
深拷贝:递归深度遍历复制,无论b如何改变a都不会改变
示例:
浅拷贝
c[3][0] = 9; c[1]=0;
可以看到,浅拷贝可以改变的元素只有第1层;
深拷贝
import copy
c[3][3][0] = 100;
解放数组*,解放dict:**
1
2
3
4
5
6
7
8
9def g(a,b,c,d):
print(a,b,c,d)
return
a = [1,2,3,4]
g(*a) # 1 2 3 4
b = {'a':2, 'b':3, 'c':4, 'd':5}
g(**b) # 2 3 4 5lambda表达式
1
2
3
4
5
6
7def f(x,y):
return x + y
g = lambda x, y: x + y
f(3, 4) #7
g(3, 4) #7元组在定义的时候可以省略小括号
1
2a = (1, 2, 3)
b = 1, 2, 3对应元素zip
1
2
3
4
5
6
7
8
9
10
11a = [1, 2, 3]
b = ['a', 'b', 'c']
for i in range(len(a)):
print(a[i], b[i])
for x, y in zip(a, b):
print(x, y)
# 1 a
# 2 b
# 3 cwith可以增加文件操作的鲁棒性;
static静态变量:所有对象公用该变量;
所有的成员函数都需要self;