python中的socket

python中的socket

下面是python管方文档的一段代码

[Copy to clipboard] [ - ]
CODE:
# Echo server program
import socket

HOST = ''                 # Symbolic name meaning the local host
PORT = 50007              # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
    data = conn.recv(1024)
    if not data: break
    conn.send(data)
conn.close()

conn, addr = s.accept()
红色的代码不是很理解,左边是两个值,右边却就一个,到底是怎么个赋值过程呢?
我分别把conn和addr打印出来了

addr is : ('127.0.0.1', 35716)
conn is : <socket object, fd=5, family=2, type=1, protocol=0>

谁能告诉我a,b = c这种表达式的意思啊,谢谢

这就是python特殊的,一次可以返回多个值,其实是一个tuple,比如:

>>> a = 1,2
>>> a
(1, 2)
>>> a = (3, 4)
>>> a
(3, 4)
>>> c, d = a
>>> c
3
>>> d
4

所以tuple可以一次赋给多个变量,这就是很有趣的地方。教程里面应该有讲述。
tuple 是讲到了,但没想到还能多个返回。呵呵,看来是思维定势了,,以后多用用python还能开阔思维,赞
所以有些文章讲到python为什么不需要使用指针或引用来返回多个值,主要就是因为它可以非常方便地一次返回多个值,根本不需要指针和引用的方式。