/
flykker
/
snake
Обзор
Документация
Войти
/
flykker
/
snake
Код
Запросы
1
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
examples/closure.py
28 строк
525 B
Niklas Rosenstein
breaking change: rework public API
17 дек 2022, 21:09
17 дек 2022, 21:09
39ca172
Код
Авторство
О чём код?
from textwrap import dedent from typing import Any, Callable import builddsl class HelloSayer: def __call__(self, closure: Callable[[Any], Any]) -> None: closure(self) def to(self, name: str) -> None: print(f"Hello, {name}!") def main() -> None: code = dedent( """ hello { to name: "World" }""" ) context = builddsl.Context(builddsl.targets.mutable_mapping({"hello": HelloSayer()})) context.exec(code) if __name__ == "__main__": main()