Вызвать функцию python из другого файла

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

https://youtu.be/l8n4mkq-tgo Введение Если вы новичок в Python и наткнулись на этот вопрос, то я приглашаю вас читать, как я обсуждаю, как позвонить в функцию из другого файла. Скорее всего, вы использовали некоторые встроенные функции Python, уже как Print () и Len (). Но что, если вы определили свою собственную функцию, сохранены … Как вызвать функцию из другого файла в Python? Подробнее “

Автор оригинала: Peter Rubio.

Вступление

Если вы новичок в Python и наткнулись на этот вопрос, то я приглашаю вас читать, как я обсуждаю, как позвонить в функцию из другого файла. Вы, скорее всего, использовали некоторые из Python’s Встроенные функции уже вроде Печать () и Лен () Отказ Но что, если вы определили свою собственную функцию, сохранили его в файл и хотели бы вызвать его в другом файле?

Импортируйте!

Если вы когда-либо импортировали что-то вроде случайного, Numpy или Math, то это действительно так просто, как это! Если у вас нет, то вот быстрый взгляд на то, как это сделано.

Читайте также:  Java hashmap with list

В качестве примера давайте будем использовать математический модуль, чтобы найти квадратный корень номера.

Во-первых, мы им импортируем.

Чтобы увидеть доступные функции и атрибуты для модуля, используйте встроенный функцию dir () :

>>> dir(math) ['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

Функция для расчета квадратного корня называется « SQRT ‘. И мы будем использовать точечную обозначение, чтобы вызвать это:

Кроме того, вы можете использовать ключевое слово « из », а затем имя модуля и « Импорт », а затем атрибут или функция. Таким образом, мы больше не должны использовать нотацию DOT при вызове квадратной корневой функции.

>>> from math import sqrt >>> sqrt(81) 9.0

И, как и ожидалось, пытаясь получить доступ к другим функциям или атрибутам все еще требует записи DOT:

>>> pi Traceback (most recent call last): File "", line 1, in NameError: name 'pi' is not defined >>> math.pi 3.141592653589793

Определенные пользователем функции

По мере того, как вы прогрессируете в своем кодировании Python, вы в конечном итоге создадите свои собственные функции и внедрим их в другие программы. В качестве примера мы проиллюстрируем это простым калькулятором наконечника. Я приглашаю вас следовать.

Откройте свой любимый редактор Python Отказ В настоящее время я использую Linux, поэтому я просто буду использовать VI Для этого примера. Я назову свой файл ” myfunctions.py “.

def calcTip(b): # Tip will be 20% of the bill return (b * .2)

Теперь, чтобы вызвать функцию из другого файла в Python, мы просто используем «импорт», а затем имя вашего .py файл:

>>> import myfunctions >>> totalBill = 100.00 >>> tip = myfunctions.calcTip(totalBill) >>> print(tip) 20.0

Если у вас есть несколько функций в вашем файле и хотели бы видеть их, не забудьте использовать Дир функция. В нашем случае он только показывает Calctip Функция:

>>> dir(myfunctions) ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'calcTip'] >>>

Кроме того, не забывайте, что мы можем использовать альтернативный метод, если вы хотите пропустить нотацию DOT:

>>> from myfunctions import calcTip >>> totalBill = 250.00 >>> print(calcTip(totalBill)) 50.0 >>>

Вещи, чтобы осмотреть для

Примечание в моем примере, когда я запустил интерпретатор Python, он был в том же рабочем каталоге, что и MyFunctions.py файл. Если вы не знакомы с Linux, знак доллара – это командная строка.

  • PWD рабочий каталог
    • Текущий каталог «/Home/Pete/Home/Python»
    • Файл «MyFunctions.py» находится здесь

    На дисплее ниже скриншота я меняю рабочий каталог на дом (~) и запустить PWD Чтобы показать текущий путь каталога. Затем я запустил интерпретатор Python и попытаться импортировать MyFunctions файл. Теперь он показывает « ModulenotfoundError », потому что файл не в текущем каталоге.

    Если вы используете IDE Затем убедитесь, что ваш файл находится в вашем проекте. На экране ниже скриншота отображается IDE SPYDER с проектом «Функциональный пример». Скриншот « myfunctions.py » файл с определением функции кальцинг :

    Скриншот файла ” main.py “. Этот конкретный IDE действительно велик, потому что поскольку файл « MyFunctions.py » находится в нашем проекте, то автозаполнение обнаруживает его, когда им импортирую.

    Вот выход консоли при запуске main.py Файл, передавая переменную « Билл » в Calctip Функция:

    И вот как позвонить в функцию из другого файла в Python. Я надеюсь, что вы нашли эту статью полезную и с нетерпением ждем писать больше! До скорого!

    Читайте ещё по теме:

    Источник

    Как сделать вызов функции из другого файла в python?

    Чтобы сделать вызов функции из другого файла в python, ее необходимо сначала импортировать. Вы можете импортировать как весь файл(модуль), так и отдельно функции из него. Для импорта, каталог, в котором лежит файл, должен быть пакетом(package), то есть содержать в себе файл init.py .

    Импорт модуля. В таком случае функции из модуля вызываются через точку:

    from my_package import my_module # где my_package - пакет # my_module - искомый файл def main(): x = my_module.function() . 

    Импорт конкретной функции из модуля:

    from my_package.my_module import function def main(): x = function() . 

    Источник

    Руководство по импорту функций в Python: примеры и методы

    Руководство по импорту функций в Python: примеры и методы

    Импорт функций из другого файла является общей практикой в Python. Это позволяет разделить код на модули, что делает его более удобным для чтения и поддержки.

    Структура проекта

    Перед тем, как начать рассматривать импорт функций, давайте посмотрим на стандартную структуру проекта Python. Как правило, проект содержит различные файлы и папки. Например:

    my_project/ │ ├── module1.py ├── module2.py ├── my_package/ │ ├── __init__.py │ ├── submodule1.py │ └── submodule2.py └── main.py

    В данном случае, у нас есть два модуля на верхнем уровне ( module1.py и module2.py ), пакет my_package , содержащий два подмодуля ( submodule1.py и submodule2.py ), и главный скрипт main.py .

    Импортирование функций

    Допустим, у нас есть функция в module1.py , которую мы хотим использовать в main.py . Это можно сделать, импортировав эту функцию.

    # module1.py def greet(name): print(f'Hello, !')
    # main.py from module1 import greet greet('Alice')

    Здесь мы используем ключевое слово import чтобы импортировать функцию greet() из module1.py в main.py . После импортирования функции, мы можем вызывать её как обычно.

    Использование алиасов для функций

    В некоторых случаях, может быть удобно использовать алиас (или «псевдоним») для импортированной функции. Это особенно полезно, когда функция имеет длинное или не очень понятное имя, или когда вы хотите избежать конфликтов имен.

    # main.py from module1 import greet as g g('Alice')

    Теперь функция greet() может быть вызвана как g() .

    Импорт всех функций из модуля

    Иногда может быть удобно импортировать все функции из модуля. Это можно сделать с использованием * .

    # main.py from module1 import * greet('Alice')

    Однако, следует быть осторожным при использовании * для импорта, поскольку это может привести к конфликтам имен, если разные модули содержат функции с одинаковыми именами.

    Импортирование функций из пакетов и подмодулей

    Импортирование функций из пакетов и подмодулей происходит аналогичным образом.

    # my_package/submodule1.py def farewell(name): print(f'Goodbye, !')
    # main.py from my_package.submodule1 import farewell farewell('Alice')

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

    Использование __init__.py

    __init__.py — это особый файл, который Python автоматически запускает при импортировании пакета. Этот файл обычно используется для выполнения кода инициализации пакета или для указания, какие модули должны быть импортированы, когда импортируется весь пакет.

    # my_package/__init__.py from .submodule1 import farewell from .submodule2 import some_other_function
    # main.py from my_package import farewell farewell('Alice')

    Здесь farewell() доступен для импорта напрямую из my_package , благодаря импорту в __init__.py .

    Относительный и абсолютный импорт

    В Python существуют два типа импорта: относительный и абсолютный. Абсолютный импорт использует полный путь к импортируемому модулю от корня проекта. Относительный импорт, с другой стороны, использует путь от текущего модуля до модуля, который вы хотите импортировать.

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

    # main.py from my_package.submodule1 import farewell # Абсолютный импорт # my_package/submodule1.py from .submodule2 import some_other_function # Относительный импорт

    Заключение

    Импортирование функций из другого файла — это важная часть структурирования вашего кода в Python. Это позволяет разделить код на модули и пакеты, делая его более организованным и удобным для поддержки.

    Учтите, что при работе с импортами следует избегать циклических импортов и необходимо быть осторожными с использованием импорта с * , чтобы избежать конфликтов имен. Будьте внимательны к структуре вашего проекта и используйте абсолютные импорты, когда это возможно, для большей ясности.

    Источник

    Importing Function From a File in Python

    The process of importing a function from a file in Python is similar to importing modules. You have to create two files. Next, insert the definition of the function in one file and call the function from another.

    Create a file with a function

    Name the new file myfile.py and insert a function.

    Create the second file, in the same directory, let’s call it main.py, import the file and make a function call.

    This code will generate the following message.

    my_function works. Message: Hello World!

    Another way to import

    Let’s import a file and call a function a bit differently. Instead of using import myfile, we use from myfile import *.

    Now, you can call a function, without using the file name at the beginning of it.

    This way, the program will import all functions inside the file. In our case, there is only one function.

    Import file from another location

    Python 3.3+

    If the file where you want to call a function is in a different location than the file you want to import, you have to use the SourceFileLoader class.

    I have my second file called myfile2.py at this location: D:/myfile2.py.

    The modified main.py file looks like this:

    The class SourceFileLoader takes a path and loads a module using the load_module function. This module is assigned to the mymodule variable.

    After you run the code, you will get this message.

    my_function2 works. Message: Hello World!

    Python 3.5+

    You can also import a file using the util module.

    Источник

Оцените статью