3.5Kпросмотров
18 декабря 2022 г.
Score: 3.9K
Если же у вас Windows, нужно ввести следующее:
PcBuild/build.bat -c Debug
Здесь мы опять же собираем питон с флагом -c Debug, что бы сборка была быстрее. Замечание: Сборка процесс не быстрый. Эти команды могут выполняться достаточно долго, всё зависит от вашего железа. Протестируем то что у нас получилось создадим в корне директории cpython файл test_interpreter.py, и протестируем наш neg() help(neg) Запустим наш test_interpreter.py с помощью нашего нового интерпретатора
./python test_interpreter.py
Help on built-in function neg in module builtins: neg(x, /) Return the negate value of the argument.
Прекрасно! Та самая небольшая документация что мы писали, работает.
Теперь изменим test_interpreter.py:
print(neg(1))
print(neg(-1)) ./python test_interpreter.py
-1
1
Отлично. Всё работает как нужно. Теперь давайте проверим как это будет работать
с классами, которые определит пользователь.
class SomeClass: def init(self, number: int) -> None: self.number = number def neg(self): return -2 self.number
Мы реализовали neg у класса, который будет возвращать -2 number
Давайте проверим! test = SomeClass(5)
print(neg(test)) ./python test_interpreter.py
-10
Чудно! Всё работает ровно так как мы ожидали.
Теперь, попробуйте реализовать какую-нибудь не столь бесполезную функцию как та что описана в статье. 1. builtins - встроенные в интерпретатор функции и типы, которые всегда доступны, например print или bool Дополнительные материалы https://github.com/python/cpython Если у вас возникли трудности, вы можете взглянуть на этот форк CPython: https://github.com/Eclips4/cpython_articles/tree/3.11
В частности, на этот коммит.