Как вызвать переменную из другого файла python
Перейти к содержимому

Как вызвать переменную из другого файла python

  • автор:

Импорт переменных из другого файла в Python

Я объявил несколько переменных и инициализировал их с некоторыми значениями в variables.py :

flag = 0 j = 1 

Я хочу использовать эти значения в другом файле main_file.py :

import variables if(flag == 0) : j = j+1 

Однако я получаю следующую ошибку,

NameError: name 'flag' is not defined 

Как я могу решить эту проблему?

Поделиться Источник 16 августа 2017 в 09:57

3 ответа

Все, что вы сделали, правильно, за исключением использования переменных.

В вашем файле main_file.py:

if(variables.flag == 0) : variables.j = variables.j + 1 

(Или)

Используйте следующий заголовок:

from variables import * 
from variables import flag, j 

Замените все ссылки флага и j (или любую другую переменную, которую вы хотите использовать из этого файла) на префикс ‘переменные.’

Поскольку это просто копия переменной, значения в variables.py не будут затронуты, если вы измените их в main_file.py

Поделиться 16 августа 2017 в 09:59

Вы можете использовать

import variables 

а затем получить доступ к гильзам вот так:

variables.flag variables.j 

или вы можете использовать:

from variables import flag, j 

а затем получить доступ к гильзам только их именем.

Important:

Обратите внимание, что во втором случае вы будете работать с копией переменных, и изменение их в одном модуле не повлияет на переменные в другом модуле!

Поделиться 16 августа 2017 в 10:01

Вам нужно импортировать переменные из файла. Вы можете импортировать все из них так:

from variables import * if(flag == 0) : j = j+1 

Или ссылаться на переменную из импортированного модуля, как здесь variables.flag

import variables if(variables.flag == 0) : j = j+1 

Или импортировать их по одному, как здесь

from variables import flag, j if(flag == 0) : j = j+1 

Лучший способ — использовать variables.flag , сохраняя пространство имен variables , потому что когда ваш код увеличивается, вы всегда можете знать, что переменная флага поступает из переменных модуля. Это также позволит вам использовать тот же флаг имен переменных в других модулях, например, module2.flag

Нужно импортировать переменную firstname из функции другого файла py

У меня есть несколько файлов типа python. Но в этом вопросе используются 2 файла: http://main.py/ и http://req.py/ . В файле http://req.py/ есть функция get_data, а в ней есть переменная(string) firstname. Как можно в http://main.py/ импортировать переменную firstname из функции файла http://req.py/ ?)
Понимаю, что замудрил всё, однако надеюсь на ваше понимание и ответ!♥

Голосование за лучший ответ

from req import firstname

Game-Play PlayerУченик (114) 1 год назад

у меня from req import get_data, firstname
вылазит ошибка

Vitness Просветленный (35133) Game-Play Player, А, переменная внутри функции? Тогда никак, она существует только внутри этой функции

Похожие вопросы

Как обратиться к переменной из другого модуля в PYTHON 3

У меня есть два файла: main.py и sub.py Мне надо завести в main переменную, которую я смогу изменять в sub. Проблема в том, что sub импортируется в main и при добавлении строчки from main import charts (где charts — нужная мне константа) получается ошибка, как я понимаю, связанная с зацикленным импортом. Я видел похожий вопрос тут Импорт функций из другого файла pytnon, но там всего лишь один ответ, который мне кажется неправильным. Хотелось бы узнать, существуют ли какие-то еще варианты выхода из данной ситуации UPD. main.py

from sub.py import MyClass charts = 10 if __name__ == "__main__": my_example = MyClass() my_example.func() 

sub.py

class MyClass: def func(self): // тут надо увеличить charts из main и вывести его 

Отслеживать
4,507 2 2 золотых знака 9 9 серебряных знаков 28 28 бронзовых знаков
задан 23 апр 2020 в 22:59
Mark Tiukov Mark Tiukov
140 1 1 золотой знак 1 1 серебряный знак 13 13 бронзовых знаков
приведите пожалуйста минимальные примеры main.py и sub.py
23 апр 2020 в 23:09

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

23 апр 2020 в 23:13
@S.Nick добавил
23 апр 2020 в 23:24

@MarkTiukov во-первых, показанный вами код синтаксически некорректен, а во-вторых, в реальных проектах писать подобным образом нужно примерно никогда. Непонятно, зачем это нужно

23 апр 2020 в 23:25

@andreymal то есть Вы хотите сказать, что в питоне так совсем не принято? В других языках (c++ и java) я постоянно обращался к разных константам и прочим вещах в подобных ситуациях. Это удобно и эффективно. Хотелось бы узнать, как такое делать в Python3

Как сделать вызов функции из другого файла в 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() . 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *