2011-07-12 19 views
5

pracuję moja droga przez dostęp do Gmaila za pomocą imaplib i natknąłem:Zrozumienie kodu Pythona

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

Chciałbym tylko wiedzieć, co:

status, 

robi się przed odpowiedzią” = ". Chciałbym go google, ale nie mam pojęcia, co bym nawet poprosić, aby znaleźć odpowiedź na to :(.

Dzięki.

Odpowiedz

13

Gdy funkcja zwraca krotki, to mogą być odczytywane przez więcej niż jednego . zmienna

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

a,b = ret_tup() 

a i b są teraz 1 i 2 odpowiednio

5

Zobacz tę stronę: http://docs.python.org/tutorial/datastructures.html

punkt 5.3 Menti Wielokrotne przypisanie "aks", czyli "rozpakowywanie sekwencji"

Zasadniczo funkcja imap_server zwraca krotkę, a python umożliwia skrót, który pozwala na zainicjowanie zmiennych dla każdego członka krotki. Równie łatwo można było zrobić:

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

Ostatecznie, po prostu skrót syntaktyczny. Możesz to zrobić za pomocą dowolnego obiektu podobnego do sekwencji po prawej stronie zadania.

+0

Dzięki chłopaki Teraz wszystko ma sens. Twoje zdrowie. – Markus

2

Chociaż podane odpowiedzi są z pewnością wystarczające, szybką aplikacją tej funkcji pytona jest łatwość zamiany wartości.

W normalnym języku, do wymiany wartości zmiennych x i y, musisz zmienna tymczasowa

z = x 
x = y 
y = z 

ale w Pythonie, możemy zamiast skrócić to do

x, y = y, x