2008-11-09 8 views
2

파이썬 스크립트에서 파이썬 스크립트를 두 번 이상 가져올 수 있습니까? 가져 오기 명령을 사용하여 함수에서 내 드라이버 파일로 루프를 실행하기 때문입니다. 한 번만 작동합니까? 덕분에파이썬 스크립트에서 파이썬 파일을 두 번 이상 가져 오는 방법

편집 : 자신에게 감사

+1

수행하려는 작업과 예상되는 작업에 대한 간단한 예를 제공 할 수 있습니까? –

+0

시간을내어 주셔서 감사합니다. –

+2

@Clinton : 다른 사람들의 이익을 위해 질문에 대한 답변을 업데이트하거나 답변을 작성하십시오. – tzot

답변

4

가장 쉬운 대답은 당신이 (당신이 지금 가져 모듈 내부)이

같은 함수 내에서 실행하고자하는 코드를 삽입하는 것입니다 해결 :

def main(): 
    # All the code that currently does work goes in here 
    # rather than just in the module 

(임포트을 수행하는 모듈)

import your_module #used to do the work 

your_module.main() # now does the work (and you can call it multiple times) 
# some other code 
your_module.main() # do the work again 
1

import 문 (정의 기준)은 한 번만 가져옵니다.

원할 경우 execfile() (또는 eval())을 사용하여 두 번 이상 별도의 파일을 실행할 수 있습니다.

7

당신은 무엇을 하려는지 가져 오기를 사용해서는 안됩니다.

추가 정보가 없어도 최상위 레벨에서 가져온 모듈의 코드를 함수로 옮기고 가져 오기를 한 번만 수행 한 다음 루프에서 함수를 호출하기 만하면됩니다.

1

톰 레이 (Tom Ley)의 답변이 올바른 접근 방법이지만 입니다. 모듈을 두 번 이상 가져 오려면 내장 된 다시로드를 사용하십시오.

module.py: 
print "imported!" 

>>> import module 
imported! 
>>> reload(module) 
imported! 
<module 'module' from 'module.pyc'> 

reload는 모듈을 반환하므로 필요에 따라 리 바인드 할 수 있습니다.

+0

분명히하기 위해 reload (module)를 module = reload (module)로 대체 할 수 있습니다. –

+1

또한 http://pyunit.sourceforge.net/notes/reloading.html을 참조하십시오. 그것은 나타나는 것처럼 간단하지 않습니다. –

+0

Ali : 원래 바인딩이 영향을 받기 때문에 리로드는 리로드에 필수적인 것은 아니라고 생각했습니다. 나는 그것이 모듈로 충분할 것이라고 지적했다. –

관련 문제