파일에 메서드 모음이있는 경우 해당 파일을 다른 파일에 포함하지만 접두사 (예 : 파일 접두사)없이 호출 할 수있는 방법이 있습니까?
그래서 내가 가지고 있다면 :
[Math.py]
def Calculate ( num )
이렇게 부르는 방법 :
[Tool.py]
using Math.py
for i in range ( 5 ) :
Calculate ( i )
답변
다음과 같은 모듈로 다른 파일을 가져와야합니다.
import Math
Calculate함수 앞에 모듈 이름을 붙이지 않으려면 다음과 같이하십시오.
from Math import Calculate
모듈의 모든 멤버를 가져 오려면 다음을 수행하십시오.
from Math import *
편집 : 여기 에이 주제에 대해 좀 더 깊이있는 Dive Into Python 의 좋은 장이 있습니다 .
답변
“include”명령을 작성하십시오.
import os
def include(filename):
if os.path.exists(filename):
execfile(filename)
include('myfile.py')
@Deleet :
@bfieck 발언이 정확합니다. python 2 및 3 호환성을 위해 다음 중 하나가 필요합니다.
Python 2 및 3 : 대안 1
from past.builtins import execfile
execfile('myfile.py')
Python 2 및 3 : 대안 2
exec(compile(open('myfile.py').read()))
답변
사용하는 경우 :
import Math
그러면 Math의 함수를 사용할 수 있지만 Math.Calculate를 수행해야하므로 당연히 원하지 않는 것입니다.
접두사없이 모듈의 함수를 가져 오려면 다음과 같이 명시 적으로 이름을 지정해야합니다.
from Math import Calculate, Add, Subtract
이제 이름만으로 계산, 더하기, 빼기를 참조 할 수 있습니다. Math에서 모든 함수를 가져 오려면 다음을 수행하십시오.
from Math import *
그러나 내용이 확실하지 않은 모듈로이 작업을 수행 할 때는 매우주의해야합니다. 동일한 함수 이름에 대한 정의를 포함하는 두 개의 모듈을 가져 오면 한 함수가 다른 함수를 덮어 쓰고 현명하지 않게됩니다.
답변
파이썬 검사 모듈이 매우 유용하다는 것을 알았습니다.
예를 들어 teststuff.py와 함께
import inspect
def dostuff():
return __name__
DOSTUFF_SOURCE = inspect.getsource(dostuff)
if __name__ == "__main__":
dostuff()
그리고 다른 스크립트 나 파이썬 콘솔에서
import teststuff
exec(DOSTUFF_SOURCE)
dostuff()
그리고 이제 dostuff 는 로컬 범위에 있어야하며 dostuff () 는 콘솔 또는 스크립트 _ name _ 을 반환하는 반면 test.dostuff ()를 실행하면 파이썬 모듈 이름이 반환됩니다.
답변
