Вопрос-Ответ

How do I call a function from another .py file? [duplicate]

Как мне вызвать функцию из другого файла .py?

file.py содержит функцию с именем function. Как мне ее импортировать?

from file.py import function(a,b)

Приведенное выше выдает ошибку:


Ошибка импорта: нет модуля с именем 'file.py'; файл не является пакетом


Переведено автоматически
Ответ 1

Сначала импортируем function из file.py:

from file import function

Позже вызовите функцию, используя:

function(a, b)

Обратите внимание, что file это один из основных модулей Python, поэтому я предлагаю вам изменить имя файла file.py на что-нибудь другое.

Обратите внимание, что если вы пытаетесь импортировать функции из a.py в файл с именем b.py, вам нужно будет убедиться, что a.py и b.py находятся в одном каталоге.

Ответ 2

Не записывайте .py при импорте.

Пусть file_a.py содержит внутри себя несколько функций:

def f():
return 1

def g():
return 2

Чтобы импортировать эти функции в file_z.py, сделайте это:

from file_a import f, g
Ответ 3

Если ваш файл находится в другой структуре пакета и вы хотите вызвать его из другого пакета, то вы можете вызвать его таким образом:

Допустим, у вас есть следующая структура пакета в вашем проекте python:

Пакет Python и структура файла

в - com.my.func.DifferentFunction файле python у вас есть некоторая функция, например:

def add(arg1, arg2):
return arg1 + arg2

def sub(arg1, arg2) :
return arg1 - arg2

def mul(arg1, arg2) :
return arg1 * arg2

И вы хотите вызывать разные функции из Example3.py, тогда вы можете сделать это следующим образом:

Определите оператор import в Example3.py - файле для функции import all

from com.my.func.DifferentFunction import *

или определите имя каждой функции, которую вы хотите импортировать

from com.my.func.DifferentFunction import add, sub, mul

Затем в Example3.py вы можете вызвать функцию для выполнения:

num1 = 20
num2 = 10

print("\n add : ", add(num1,num2))
print("\n sub : ", sub(num1,num2))
print("\n mul : ", mul(num1,num2))

Вывод:

 add :  30

sub : 10

mul : 200
Ответ 4

Метод 1. Импортируйте конкретную функцию (ы), которую вы хотите получить из file.py:

from file import function

Метод 2. Импортируйте весь файл целиком:

import file as fl

Затем, чтобы вызвать любую функцию внутри file.py, используйте:

fl.function(a, b)
python file function