Millerish
@Millerish

Как правильно подключить функцию из другого файла?

Добрый вечер!

Подскажите, как правильно подключить функцию из другого файла?

Структура:

Основной файл
Папка модуля
----Подключаемый файл
--------Нужная функция


Пишу в Основном файле:

from Папка модуля import Подключаемый файл
Нужная функция()


Ошибка:

TypeError: 'module' object is not callable


Причем если в Подключаемом файле написать прит - он отработает.

Как правильно подключить функцию?
  • Вопрос задан
  • 1407 просмотров
Решения вопроса 3
gordon_shamway
@gordon_shamway
from папка.файл import функция/класс
либо
import sys
sys.path.append(r'путь к файлу')
from файл import функция/класс
Ответ написан
sim3x
@sim3x
$
.
├── mod
│   ├── __init__.py
│   └── supermod.py
└── use.py


#supermod.py
def foo(): print('foo')

#use.py
from mod.supermod import foo
foo()
Ответ написан
urtow
@urtow
*nix, python, QA, bagpipe, folk music
TL; DR

from Папка модуля import Подключаемый файл
Подключаемый файл.Нужная функция()


Если длиннее:
Структура директории:

ls -R
.:
bar2.py  bar.py  foo

./foo:
foo2.py   __init__.py


Содержимое файла foo2.py:
def blabla():
    print 'Lol XD'


Вот так можно вызвать функцию blabla из файла bar.py:
from foo import foo2

foo2.blabla()

Почему так происходит - ты проимпортировал модуль в пространство имен. Модуль, а не функцию, потому тебе надо обратится к функции через имя модуля.

Если этого хочется избежать, можно сделать вот так (файл bar2.py):
from foo.foo2 import blabla

blabla()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы