먼저 Python 가져 오기가 어떻게 작동하는지 이해해야합니다.
첫 번째 모듈에서 import
을 호출하면 실행됩니다. 모든 함수와 변수 정의가있는 결과 네임 스페이스는 sys.modules
과 마찬가지로 네임 스페이스에서 참조되는 모듈 개체를 만드는 데 사용됩니다. 다음에 가져 오기를 가져 오면 가져 오기는 기존 모듈을 sys.modules
에서 참조합니다.
주기적 가져 오기로 인해 발생하는 오류를 방지하려면 코드 객체가 실제로 실행되기 전에 모듈 객체가 실제로 먼저 만들어 지므로 추가 가져 오기에서 이미 기존 모듈이 sys.modules
으로 표시되고 동일한 코드를 다시 실행하지 않습니다. 위에.
특정 경우에 define_cmd1
의 내용을 사용하려면 define_cmd2
을 define_cmd1
에서 명시 적으로 가져와야합니다. 둘째, 당신은 제대로 가져온 이름을 참조해야합니다
define_cmd1 :
def cmd1():
print("calling cmd1")
import define_cmd2
define_cmd2.cmd2()
define_cmd2
import define_cmd1
import define_cmd1.cmd1()
def cmd2():
print("called cmd2")
굵게 표시된 항목을 추가해야하는 코드의 비트입니다.
def
문은 함수 define_cmd1.cmd1
을 생성합니다 : 명확히하기 위해 , 여기 당신이 define_cmd
을 실행할 때 무슨 일이 일어날 것입니다.
import
로드하려고 시도합니다
define_cmd2
import
sys.modules['define_cmd1']
이 이미 존재하기 때문에이로드 또는로드되는 것을 의미 아무것도하지 않는 것 define_cmd2
인치
define_cmd1.cmd1()
이 실행됩니다.
def
문은 함수를 로딩 define_cmd1
- 실행
define_cmd2.cmd2
에
define_cmd2.cmd2
두 파일에 대한 적절한 예를 들어주십시오. 나는 실제로 어떤 파일을 가져와야하는지 이해할 수 없다. – roganjosh
이 더 낫다. – BaleineBleue