Для получения полного доступа
зарегистрируйтесь.
RSS

Все сниппеты с тэгом «ненормальное программирование»



Gravatar image
Daniil Kolesnichenko
  • Репутация: 8
  • Сниппеты: 3
  • Ревизии: 0

Использование:

>>> greet = let(greeting="Hello, %s", name="world")(lambda: print(greeting % name))
>>> greet()
Hello, world
>>> greet(name="John")
Hello, John

Никак не получается заставить конечную функцию принимать аргументы. То есть принимать-то их не проблема, но eval запскает фнкцию без аргументов, из-за чего интерпретатор ругается на несовпадение в числе аргументов. Если кто-нибудь знает, как можно выкрутиться, буду благодарен за помощь.

UPD: Пока решил передавать аргументы по имени

def let(**vars):
    def wrapper(fn):
        def res(**kwargs):
            vars.update(kwargs)
            return eval(fn.__code__, dict(**vars))
        return res
    return wrapper
Gravatar image
Ivan Kochurkin
  • Репутация: 14
  • Сниппеты: 1
  • Ревизии: 0

Игра "Змейка" реализованная в исходном коде (Квайн). Для каждого следующего шага необходимо компилировать код и сохранять его в файл (пока только Windows):

Продолжение »