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

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

example: file1 имеет переменные x1 и x2, как передать их в file2?

Как я могу импортировать переменные всех из одного в другой?

Ответ 1

from file1 import *  

импортирует все объекты и методы в файл1

Ответ 2

Импортировать file1 внутри file2:

Чтобы импортировать все переменные из файла1 без заливки пространства имен file2, используйте:

import file1

#now use file1.x1, file2.x2, ... to access those variables

Чтобы импортировать все переменные из пространства имен file1 в file2 (не рекомендуется):

from file1 import *
#now use x1, x2..

Из docs:

В то время как на модульном уровне допустимо использовать from module import *, это обычно плохая идея. Во-первых, это теряет важное свойство Python в противном случае - вы можете знать, где каждое имя верхнего уровня определяется простая функция поиска в вашем любимом редакторе. Вы также открываете самостоятельно в будущем, если какой-то модуль растет функций или классов.

Ответ 3

Лучше всего импортировать x1 и x2:

from file1 import x1, x2

Это позволяет избежать ненужных конфликтов пространства имен с переменными и функциями из file1 при работе в file2.

Но если вы действительно этого хотите, вы можете импортировать переменные all:

from file1 import * 

Ответ 4

На самом деле это не так, чтобы импортировать переменную с:

from file1 import x1
print(x1)

а также

import file1
print(file1.x1)

На момент импорта x1 и file1.x1 имеют одинаковое значение, они не являются теми же переменными. Например, вызовите функцию в файле1, которая изменяет x1, а затем попытается напечатать переменную из основного файла: вы не увидите измененное значение.

Ответ 5

Марк прав. На самом деле, вы можете напечатать адрес памяти для переменных (print (hex (id (libvar)))), и вы увидите, что адреса разные.

# mylib.py
libvar = None
def lib_method():
    global libvar
    print(hex(id(libvar)))

# myapp.py
from mylib import libvar, lib_method
import mylib

lib_method()
print(hex(id(libvar)))
print(hex(id(mylib.libvar)))

Ответ 6

В Python вы можете получить доступ к содержимому других файлов, как будто они
 какая-то библиотека, по сравнению с другими языками, такими как Java или любой другой  ой базовые языки, это действительно круто;

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

И это картина project structure This

Где я обращаюсь к переменным из .env file, где API links и  Секретные ключи хранятся.

Общая структура:

from <File-Name> import *