Я новичок в программировании на питоне. Как добавить новые встроенные функции и ключевые слова в интерпретатор python с помощью C или С++?
Как добавить встроенные функции
Ответ 1
Короче говоря, технически возможно добавить что-то к встроенным функциям Python † но это почти никогда не требуется (и вообще считается очень плохой идеей).
В более длительной перспективе, очевидно, возможно изменить исходный код Python и добавить новые встроенные функции, ключевые слова и т.д. Но процесс для этого немного выходит за рамки вопроса в его нынешнем виде.
Если вы хотите узнать больше о том, как изменить исходный код Python, как написать функции C, которые можно вызывать из Python, или что-то еще, пожалуйста, отредактируйте вопрос, чтобы сделать его более конкретным.
Если вы новичок в программировании на Python и чувствуете, что должны изменять основной язык в своей повседневной работе, это, вероятно, показатель, который вы должны просто узнать больше об этом. Python используется немодифицированным для огромного числа различных проблемных областей (например, numpy - это расширение, которое облегчает научные вычисления, а Blender использует его для 3D-анимации), поэтому вполне вероятно, что язык также сможет обрабатывать вашу проблемную область.
†: вы можете изменить модуль __builtin__
чтобы "добавлять новые встроенные функции"… Но это почти наверняка плохая идея: любой код, который зависит от него, будет очень трудно (и сбить с толку) использовать где-либо вне контекста его исходного приложения. Рассмотрим, например, если вы добавляете "встроенный" greater_than_zero
, то используйте его где-нибудь еще:
$ cat foo.py
import __builtin__
__builtin__.greater_than_zero = lambda x: x > 0
def foo(x):
if greater_than_zero(x):
return "greater"
return "smaller"
Любой, кто попытается прочитать этот код, будет сбит с толку, потому что он не будет знать, где определено greater_than_zero
, и любой, кто попытается использовать этот код из приложения, которое не greater_than_zero
в __builtin__
, не сможет его использовать.
Лучшим методом является использование существующего оператора import
Python: http://docs.python.org/tutorial/modules.html