Разница между доходностью в Python и доходностью в C #

В чем разница между ключевым словом yield в Python и ключевым словом yield в C #?

  • Используя Tornado, как мне обслуживать статические файлы и служить favicon.ico из другого каталога, чем статический путь?
  • Канонические ссылки и 301 Перенаправление, если URL-адрес не соответствует slug
  • Обновление с django 1.6 до 1.7, получающего вызов, не сериализуется при запуске makemigrations
  • Обработка щебетать в Twitter
  • Как подключить пользовательский сигнал к слоту в pyside с новым синтаксисом?
  • Невозможно импортировать scipy's io
  • Python Script не работает в crontab, вызывающем pysaunter
  • Как вернуть значение, когда @ click.option используется для передачи аргумента командной строки функции?
  • 3 Solutions collect form web for “Разница между доходностью в Python и доходностью в C #”

    yield return C # эквивалентен yield Python, а yield break – это просто return в Python.

    Помимо этих незначительных различий, они имеют в основном одну и ту же цель.

    Это может помочь вам понять это: Итераторы в C #, Python и Ruby

    Самое важное отличие заключается в том, что выход python дает вам итератор, как только он будет полностью повторен, и все закончится.

    Но возврат C # yield дает вам итератор « фабрика» , который вы можете передать и использовать его в нескольких местах вашего кода, независимо от того, был ли он «зациклен» один раз раньше.

    Возьмем этот пример в 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]: 

    И в 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); } } 

    Это дает вам:

     0 1 2 0 1 2 
    Python - лучший язык программирования в мире.