¿Cuál es la diferencia entre la palabra clave yield
en Python y la palabra clave yield
en C#?Diferencia entre rendimiento en Python y rendimiento en C#
Respuesta
C# yield return
es equivalente a Python yield
, y yield break
es solo return
en Python.
Aparte de esas pequeñas diferencias, tienen básicamente el mismo propósito.
Esto puede ayudar a entender que: Iterators in C#, Python, and Ruby
artículo útil, gracias! – JackNova
La diferencia más importante es que el rendimiento de pitón le da un iterador, una vez que esté completamente reiteró que acabó.
Pero el retorno de rendimiento C# le proporciona un iterador "factory", que puede pasarlo por alto y usarlo en varios lugares de su código sin importar si se ha "enlazado" una vez.
Tome este ejemplo en Python:
In [235]: def func1():
.....: for i in xrange(3):
.....: yield i
.....:
In [236]: x1 = func1()
In [237]: for k in x1:
.....: print k
.....:
0
1
2
In [238]: for k in x1:
.....: print k
.....:
In [239]:
Y en C#:
class Program
{
static IEnumerable<int> Func1()
{
for (int i = 0; i < 3; i++)
yield return i;
}
static void Main(string[] args)
{
var x1 = Func1();
foreach (int k in x1)
Console.WriteLine(k);
foreach (int k in x1)
Console.WriteLine(k);
}
}
que le da: Rotura
0
1
2
0
1
2
- 1. Diferencia de rendimiento entre IIf() y Si
- 2. C# Diferencia entre Foreach y para (no rendimiento)
- 3. Diferencia de rendimiento entre Innodb y Myisam en Mysql
- 4. ¿Diferencia de rendimiento entre las compilaciones de VALA y AOT?
- 5. python threading y rendimiento?
- 6. Diferencia de rendimiento entre VARCHAR2 a NUMBER
- 7. rendimiento str en Python
- 8. Diferencia en el rendimiento entre el mapa y unordered_map en C++
- 9. Diferencia de rendimiento entre Amazon EC2 y Linode
- 10. ¿Hay alguna diferencia (de rendimiento) entre Depurar y Liberar?
- 11. ¿Cuál es la diferencia de rendimiento entre HttpModule y Global.aspx?
- 12. ¿Rendimiento o diferencia de estilo entre "si" y "si no"?
- 13. ¿Diferencia de rendimiento entre el iterador ++ y el iterador ++?
- 14. ¿Hay alguna diferencia de rendimiento entre myCollection.Where (...). FirstOrDefault() y myCollection.FirstOrDefault (...)
- 15. Rendimiento en C#
- 16. ¿Diferencia de rendimiento extraña de C++?
- 17. ¿Por qué la diferencia de rendimiento entre C# (bastante más lento) y Win32/C?
- 18. rendimiento entre diferentes procesos
- 19. Rendimiento de rendimiento en Java
- 20. Objetivo-C, .m/.mm ¿diferencia de rendimiento?
- 21. Diferencia entre '' y "" en Python
- 22. Diferencia de rendimiento para multiproceso y multiproceso
- 23. Rendimiento de rendimiento del rendimiento: en Smalltalk (específicamente Squeak)
- 24. Funciones virtuales y rendimiento C++
- 25. diferencias de rendimiento entre P/Invoke y C envolturas ++
- 26. Rendimiento C++, para versus while
- 27. Rendimiento del rendimiento anidado en un árbol
- 28. C++ puro para Android y su rendimiento
- 29. ¿Qué hace el rendimiento en Python 2.7?
- 30. Silverlight: ¿existe una diferencia de rendimiento entre los gestores de eventos de C# y VB.net?
rendimiento en C# no es exactamente equivalente a la vuelta de Python. Si su función no hace nada más que el límite de rendimiento (retorno en Python), obtendrá un Enumerador vacío mientras que None en python. –
Esa es una peculiaridad sintáctica menor de Python; puedes usar 'return; rendimiento' para obtener un generador vacío. –
También 'yield' en Python es una expresión que puede recibir valores del sitio iterativo. 'yield return' es una declaración. – Elazar