Я пытаюсь вызвать функцию, которую я вручную создал в Python и сохранил в каталоге lib. Как я могу это сделать? - PullRequest
0 голосов
/ 01 ноября 2018

Я создал функцию двоичного поиска в Python и сохранил ее как файл .py в каталоге lib, связанном с Python Idle. Как я могу успешно вызвать эту функцию после ее импорта?

Я получаю сообщение об ошибке при попытке вызвать функцию после добавления параметров.

Ошибка, которую я получаю:

Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
  from lib import BinarySearch
ModuleNotFoundError: No module named 'lib'

РЕДАКТИРОВАТЬ: Использование Windows 10, ошибка, которую я получаю после исправления оператора импорта:

import BinarySearch
Traceback (most recent call last):
File "<pyshell#41>", line 1, in <module>
  BinarySearch()
TypeError: 'module' object is not callable

1 Ответ

0 голосов
/ 01 ноября 2018

Если поставить BinarySearch.py in ... / Pythonxy / Lib (to use the Windows name), use import BinarySearch , just like you would use import abc for Lib / abc.py and so on for other built-in modules in / Lib`.

[Как правило, лучше назвать файл binary_search.py и зарезервировать имена CamelCase для классов. Также было бы лучше поместить ваши файлы в Lib/site-packages или в каталог в вашем пользовательском каталоге. Но это другие вопросы.]

Ничто из этого не имеет ничего общего с IDLE как таковым.

Редактировать: теперь, когда вы можете импортировать модуль, вы должны вызвать функцию внутри модуля. Если функция также называется BinarySearch:

BinarySearch.BinarySearch()

или

from BinarySearch import BinarySearch  # import the function from the module
BinarySearch()

Я предполагаю, однако, что функция нуждается в аргументе или двух.

[Было бы менее запутанным, если бы модуль и функция имели разные имена, такие как module binsearch (file binsearch.py) и function binary_search.]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...