как изменить встроенные модули python

#python #python-3.x #list #built-in

Вопрос:

Я хочу добавить функции во встроенный модуль python. Например, в списке нет функции поиска. Я хочу добавить это. Есть еще несколько функций, которые я хочу добавить. Может кто-нибудь, пожалуйста, сказать мне, как я могу это сделать? Есть ли у них какой-нибудь способ, которым я могу это сделать?

Комментарии:

1. Как правило, вы не пытаетесь что-либо исправить в Python, что вводит невидимые зависимости.

2. Кстати, в нем есть find функция list . Это называется index()

3. Вероятно, было бы лучше не делать этого, а просто использовать функции как простые функции, а не методы. Вы уже думали об этом?

4. В духе комментария @Elazar рекомендуется, чтобы вы научились правильно использовать фундаментальные объекты Python list , прежде чем решите, что они неудовлетворительны и должны быть исправлены или расширены.

Ответ №1:

Добавление функций во встроенный модуль очень просто:

 import builtins
builtins.find = my_find_function
 

Но встроенные классы обычно неизменяемы, поэтому их нельзя изменить.

 >>> list.hello = "hello"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't set attributes of built-in/extension type 'list'