Eventuali duplicati:
The Python yield keyword explainedCosa fa yield in python 2.7?
Okay, ho probabilmente formulato la questione male, ma questa è la situazione che ho.
ho questa riga di codice in Python 2.7, che sto cercando di capire:
yield (padding_zeros + number_string).encode("ascii")
In questa riga di codice, padding_zeros
è una stringa di un numero variabile di '0 e number_string
è un numero sotto forma di stringa che può essere qualsiasi numero compreso tra 0 e 10000.
Sono abbastanza sicuro che lo .encode("ascii")
converta solo l'output di rendimento in ascii.
Quello che mi interessa completamente è ciò che fa lo yield (padding_zeros + number_string)
.
So che avvia un generatore ma ho passato un sacco di tempo a cercare online e a leggere la sintassi, ma non riesco ancora a capire quale sia il vero generatore . Non aiuta che questa sia la mia prima volta a guardare Python (il mio obiettivo ultimo è quello di convertire questo codice in C#).
Quindi, in sostanza, per favore qualcuno potrebbe spiegarmi cosa fa questa riga di codice? Aggiunge semplicemente le due stringhe o fa qualcosa di un po 'più complicato?
Per ulteriori contesto, questo è il blocco che quella riga di codice appare in:
for current_length in range(4, max_length + 1):
for i in range(0, pow(10, current_length)):
number_string = str(i)
padding_zeros = "0" * (current_length - len(number_string))
yield (padding_zeros + number_string).encode("ascii")
(max_length
essere esattamente quello che sembra - un numero che indica la lunghezza massima di qualcosa)
Grazie in anticipo per qualsiasi e tutte le risposte (anche se mi stanno dicendo di non essere un noob fremente) :)
EDIT: Grazie mille per le risposte - anche se ho potuto solo p ciao come la migliore risposta sono stati tutti molto utili. E grazie anche per i commenti - come alcuni hanno sottolineato, What does the "yield" keyword do in Python? è un'ottima guida generale per generare, generatori e iterazioni anche se non ho trovato una risposta alla mia situazione specifica :)
È questo il Python 2 o Python 3? –
Ciao George, la tua domanda è stata esaudita qui abbastanza bene, mi sento: http://stackoverflow.com/questions/231767/the-python-yield-keyword-explained – MattH
Vedi questa risposta: http://stackoverflow.com/questions/231767/the-python-yield-keyword-explain/231855 # 231855 –