上节回顾
socket
1、导入模块
2、创建socket
3、
字节
send sendall
10 = send('abcdefg')
sendall:
while True:
10 = send('abcdefg')
10 = send('abcdefg')
recv(20148) // 上传文件时,最多接受2048个字节
粘包: ack
socketserver
1、自定义类
2、继承socketserver.BaseRequestHandeler
3、运行handle
4、调用server = socketserver.ThreadingTCPServer(('127.0.0.1', 8009), MyServer)
5、运行server_server_forever()
作业回顾:
编码 utf-8 3个字节 gbk 2个字节
接收: subprocess > win > gbk编码的字节
断点续传:
文件:
a,追加
w,清空写
文件指针:
seek(num)
知识点:
作用域
python 中无块级作用域
if 1 == 1:
name = 'rain'
print(name) # 可以打印(原因,python无块级作用域)
python 中以函数为作用域
def func():
name = 'rain'
return name
func()
print(name) # NameError: name 'name' is not defined
python 作用域链,由内向外找
函数未执行前,作用域已经定义
python的作用域在执行之前已经确定
name = 'rain'
def f1():
print(name)
def f2():
name = 'sunny'
return f1
f1() # rain
py27多继承、py35多继承
python27分类
新式类
继承(object)
经典类
不继承(object)
python35
新式类
默认继承(object)
上课知识点总结
作用域
# 作用域
# python中无块级作用域
if 1 == 1:
name = '123'
print(name)
# python中以函数为作用域
def func():
name = 'rain'
return name
func()
print(name)
"""
Traceback (most recent call last):
File "E:/s13/day10/test.py", line 16, in <module>
print(name)
NameError: name 'name' is not defined
"""
name = 'rain'
def f1():
print(name)
def f2():
name = 'sunny'
return f1
f1()
知识点:
作用域
python 中无块级作用域
if 1 == 1:
name = 'rain'
print(name) # 可以打印(原因,python无块级作用域)
python 中以函数为作用域
def func():
name = 'rain'
return name
func()
print(name) # NameError: name 'name' is not defined
python 作用域链,由内向外找
函数未执行前,作用域已经定义
python的作用域在执行之前已经确定
name = 'rain'
def f1():
print(name)
def f2():
name = 'sunny'
return f1
f1() # rain
上述代码中文解释
lambda知识点
li = [lambda :x for x in range(10)]
res = li[0]()
print(res)
# 原型
li = []
for i in range(5):
def f1():
return i
li.append(f1)
a = li[2]()
print(a)
li = []
for i in range(5):
def f1(x=i):
return x
li.append(f1)
print(li[0]()) # 0
print(li[1]()) # 1
print(li[2]()) # 2
py27多继承、py35多继承
python27分类
新式类
继承(object)
经典类
不继承(object)
python35
新式类
默认继承(object)