<질문>
한 파일에서 다른 파일로 변수를 어떻게 가져올 수 있습니까?
예:file1
변수가 있습니다x1
과x2
그들을 전달하는 방법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>
가져 오기가 가장 좋습니다.x1과x2명시 적으로 :
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
데이터 과학 및 기계 학습 등에 매우 선호되는 언어입니다.
변수에 액세스하는 위치.env file
어디API links
및 비밀 키가 있습니다.
일반 구조 :
from import *
'개발 > Python' 카테고리의 다른 글
Python 3 open (encoding =“utf-8”)을 Python 2로 백 포팅 (0) | 2021.04.17 |
---|---|
쉼표로 구분 된 항목이 있는 문자열을 Python의 목록으로 변환하는 방법은 무엇입니까? (0) | 2021.04.17 |
[파이썬] 바이트 문자열을 정수로 변환하는 방법은 무엇입니까? (0) | 2021.04.17 |
Python 스크립트를 실행하려고 할 때 "ImportError : No module named" (0) | 2021.04.17 |