Чтобы понять путь поиска модуля python, я пытался создать модуль по имени, которое уже доступно в стандартной библиотеке. Я создал файл «math.py» в моей текущей папке и имеет определение функции «factorial», которое принимает один аргумент. Теперь я хочу, чтобы, когда я импортирую математический модуль и вызываю функцию «factorial», моя функция вызывается, а не стандартная библиотека. Все документы говорят, что путь поиска, хранящийся в «sys.path», определяет порядок поиска и дает самый высокий приоритет текущему каталогу.Могу ли я переопределить путь поиска модуля в python
Но когда я запускаю свой код, я обнаружил, что мой математический модуль не загружается, и моя факториальная функция не вызывается. Python продолжает загружать и выполнять стандартные определения библиотек.
Где я буду неправильно
Вот файл mymain.py
print "running...............>>"
import math
print math.factorial(5)
Это файл math.py (в том же каталоге, mymain.py)
print "math loaded"
def factorial(i) :
return i+10
И теперь я выполняю команду «python mymain.py»
Это довольно удивительно, учитывая документацию на [sys.path] (https://docs.python.org/3/library/sys.html#sys.path) и [порядок поиска модулей] (https : //docs.python.org/3/tutorial/modules.html#the-module-search-path). Можете ли вы привести пример кода? – balu
Я отредактировал мой вопрос, чтобы содержать образец кода – user3282758
Я думаю, что путь поиска относится только к не встроенным модулям, но я не уверен. Почему вы все равно хотите перезаписать встроенный модуль Python? Похоже, он просто просит неприятностей. – TheSoundDefense