Tag: урожай

Как реализованы супер, пропуск, доходность и другие ключевые слова в Python?

Мне задали этот вопрос в недавнем интервью. И я знаю, что супер – это способ получить суперкласс, пропуск не имеет никакого эффекта, но для закрытия функции или объявления класса, выход используется в генераторе. Но я понятия не имею, как они реализованы в Python. Я искал и получил только ответ для супер: Как реализована функция super […]

Альтернатива доходности в Python

Есть ли альтернативный (даже более длинный) метод написания части yield этого кода? Я не очень хорошо знаком с этой функцией и предпочитаю держать ее простой. for i in range(0, len(lstInput) – intCount + 1): if intCount == 1: yield [lstInput[i]] else: current = lstInput[i] remainder = lstInput[i+1:] for rest in yieldLotto(remainder, intCount – 1): yield […]

выход медленнее, чем возврат. Зачем?

Я написал две функции f и g с одинаковой функциональностью def f(l, count): if count > 1: for i in f(l, count-1): yield i + 1 else: yield from l for i in f(range(100000),900): pass print('f') а также def g(l, count): if count > 1: tmp = [] for i in g(l, count-1): tmp.append(i+1) return […]

yield python добавляет предыдущий результат функции

Я хочу написать функцию, которая будет использовать yield, но каждый раз, когда значение поля для отправки функции будет предыдущим результатом: например, если вызов f (5) возвращает 10, следующий вызов будет f (10). если результат f (10) возвращает 18, следующий вызов будет f (18) Как мне это сделать? Я написал этот код: def my_function(f,init_value): yield init_value […]

Правильный способ использования «yield» в этом примере

Я пытаюсь показать, как используется yield в Python. Я хочу продемонстрировать это на примере. В примере попросит пользователя ввести « yes или « no и увеличить счетчик n на 1 каждый раз, когда будет введена yes . Часть, которую я хочу показать, как работает yield – это когда пользователь снова вызывает функцию и получает обновленное […]

Можно ли давать две вещи одновременно, как и возвращение?

def foo(choice): for i in limit: d1 = doSomeCalc() d2 = doSomeOtherCalc() if choice == "stuff": yield { d1 : "value" } else: yield { d2 : "Othervalue" } У меня есть функция, которая yield два типа словарей в зависимости от выбора пользователя def bar(): for i in limit: d1 = doSomeCalc() d2 = doSomeOtherCalc() […]

Обратный вызов внутри функции inlineCallbacks

Предположим, у меня есть такая функция: def display(this, that): print this, that и класс: class Runner(object): def __init__(self, callback): self.callback = callback self.loop = twisted.internet.task.LoopingCall(repeat) self.loop.start(0) @defer.inlineCallbacks def repeat(self): this = yield do_this() that = yield do_that() if this and that: # now I want to call the callback function yield self.callback(this, that) # makes […]

Scrapy: crawlspider не генерирует все ссылки во вложенных обратных вызовах

Я написал scraw crawlspider для обхода сайта со структурой, например страницей категории> страница типа> страница списка> элементная страница. На странице категории есть много категорий машин, каждая из которых имеет страницу типа с множеством типов, каждый из разных типов имеет список элементов, а затем, наконец, каждая машина имеет страницу с информацией об этом. У моего паука […]

какая разница между доходностью и доходностью в python 3.3.2+

После python 3.3.2+ python поддерживает новый синтаксис для создания функции генератора yield from <expression> Я быстро попытался это сделать >>> def g(): … yield from [1,2,3,4] … >>> for i in g(): … print(i) … 1 2 3 4 >>> Это кажется простым в использовании, но документ PEP является сложным. Мой вопрос в том, есть […]

Создание списков с использованием yield в Ruby и Python

Я пытаюсь придумать элегантный способ создания списка из функции, которая дает значения как в Python, так и в Ruby. В Python: def foo(x): for i in range(x): if bar(i): yield i result = list(foo(100)) В Ruby: def foo(x) x.times {|i| yield i if bar(i)} end result = [] foo(100) {|x| result << x} Несмотря на […]

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