개발/Python

[파이썬] 다른 파일에서 변수 가져오기?

MinorMan 2021. 4. 17. 12:54
반응형

<질문>

한 파일에서 다른 파일로 변수를 어떻게 가져올 수 있습니까?

예:file1변수가 있습니다x1x2그들을 전달하는 방법file2?

어떻게 가져올 수 있습니까?모두하나에서 다른 변수로?


<답변1>

from file1 import *  

file1의 모든 개체와 메서드를 가져옵니다.


<답변2>

수입file1내부file2:

file2의 네임 스페이스를 플러딩하지 않고 file1에서 모든 변수를 가져 오려면 다음을 사용하십시오.

import file1

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

file1에서 file2의 네임 스페이스로 모든 변수를 가져 오려면 (권장하지 않음) :

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

로부터docs:

모듈 수준에서 모듈 가져 오기 *를 사용하는 것이 유효하지만 일반적으로 나쁜 생각입니다. 우선, 이것은 파이썬이 가지고있는 중요한 속성을 잃어 버립니다. 여러분이 선호하는 편집기의 간단한 "검색"기능에 의해 각 최상위 이름이 정의 된 위치를 알 수 있습니다. 일부 모듈이 추가 기능이나 클래스를 늘리면 미래에 문제가 발생할 수도 있습니다.


<답변3>

가져 오기가 가장 좋습니다.x1x2명시 적으로 :

from file1 import x1, x2

이를 통해 다음의 변수 및 함수와 불필요한 네임 스페이스 충돌을 피할 수 있습니다.file1일하는 동안file2.

하지만 정말로 원한다면모두변수 :

from file1 import * 

<답변4>

실제로 이것은 다음을 사용하여 변수를 가져 오는 것과 실제로 동일하지 않습니다.

from file1 import x1
print(x1)

import file1
print(file1.x1)

가져올 때 x1 및 file1.x1은 동일한 값을 갖지만 동일한 변수는 아닙니다. 예를 들어, x1을 수정하는 file1의 함수를 호출 한 다음 기본 파일에서 변수를 인쇄 해보십시오. 수정 된 값은 표시되지 않습니다.


<답변5>

마크response맞다. 실제로 변수에 대한 메모리 주소를 인쇄 할 수 있습니다.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>

script1.py

title="Hello world"

script2.pyscript1 변수를 사용하는 곳입니다.

방법 1 :

import script1
print(script1.title)

방법 2 :

from script1 import title
print(title)

<답변7>

first.py :

a=5

second.py :

import first
print(first.a)

결과는 5입니다.


<답변8>

Python마치 다른 파일의 내용에 액세스 할 수 있습니다.
자바 나 oop 기본 언어와 같은 다른 언어에 비해 일종의 라이브러리입니다. 이것은 정말 멋집니다.

이렇게하면 파일 내용에 액세스하거나 파일을 가져 와서 처리하거나 관련 작업을 수행 할 수 있습니다. 그리고 그것이 주된 이유입니다Python데이터 과학 및 기계 학습 등에 매우 선호되는 언어입니다.

그리고 이것은project structureThis

변수에 액세스하는 위치.env file어디API links및 비밀 키가 있습니다.

일반 구조 :

from  import *

 

반응형