2011-07-12 16 views
5

estoy trabajando mi camino a través del acceso Gmail usando imaplib y encontré:Entender algo de código Python

# Count the unread emails 
status, response = imap_server.status('INBOX', "(UNSEEN)") 
unreadcount = int(response[0].split()[2].strip(').,]')) 
print unreadcount 

Sólo deseo saber qué:

status, 

hace frente a la "respuesta = ". Me google, pero no tengo ni idea de lo que incluso pediría para encontrar una respuesta para eso :(.

Gracias.

Respuesta

13

Cuando una función devuelve una tupla, que puede ser leído por más de una . variable de

def ret_tup(): 
    return 1,2 # can also be written with parens 

a,b = ret_tup() 

a y b son ahora 1 y 2 respectivamente

5

Ver esta página: http://docs.python.org/tutorial/datastructures.html

Sección 5.3 menti ons 'asignación múltiple' aka 'desempaquetar secuencia'

Básicamente, la función imap_server devuelve una tupla, y python permite un atajo que le permite inicializar variables para cada miembro de la tupla. Podría haber hecho tan fácilmente

tuple = imap_server.status('INBOX', "(UNSEEN)") 
status = tuple[0] 
response = tuple[1] 

Así que al final, solo un atajo sintáctico. Puede hacer esto con cualquier objeto similar a una secuencia en el lado derecho de una tarea.

+0

Gracias chicos , todo tiene sentido ahora. Aclamaciones. – Markus

2

Aunque las respuestas dadas son ciertamente suficientes, una aplicación rápida de esta característica de pitón es la facilidad de intercambiar valores.

En un lenguaje normal, al intercambio de los valores de las variables x y y, se necesitaría una variable temporal

z = x 
x = y 
y = z 

pero en pitón, que en su lugar puede acortar este a

x, y = y, x