闭包
闭包: 在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。
一般情况下,在我们认知当中,如果一个函数结束,函数的内部所有东西都会释放掉,还给内存,局部变量都会消失。但是闭包是一种特殊情况,如果外函数在结束的时候发现有自己的临时变量将来会在内部函数中用到,就把这个临时变量绑定给了内部函数,然后自己再结束。
def adder(x):
def wrapper(y):
return x + y
return wrapper
adder5 = adder(5)
print(adder5(adder5(6))) # 16
return
- Python 函数不是必须有 return
- return没有返回值时,函数自动返回None,Python没有Null
- return 不可以返回多个值,实际是返回一个元组
- 执行到return时,程序将停止函数内return后面的语句
Python2 跟 Python3 中除法 / 区别
python2 整数除法/,取整的 python3 整数除法/,结果是浮点的
Python socket 操作 (再学习)
-
sk.recv(bufsize[,flag]): (TCP)接受套接字的数据。数据以字符串形式返回,bufsize指定最多可以接收的数量。flag提供有关消息的其他信息,通常可以忽略。 -
sk.recvfrom(bufsize[.flag]): (UDP)与recv()类似,但返回值是(data,address)。其中data是包含接收数据的字符串,address是发送数据的套接字地址。 -
sk.getsockname(): 返回套接字自己的地址。通常是一个元组(ipaddr,port) -
sk.connect(address): (初始化TCP服务器连接)连接到address处的套接字。一般,address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。 -
sk.listen(backlog): (开始TCP监听)开始监听传入连接。backlog指定在拒绝连接之前,可以挂起的最大连接数量。
|