현재 위치가 ./ 이고 내가 정의한 클래스의 위치가 ./home/test.py에 있다고 해보자.
그리고 그 클래스의 이름이 다음과 같이 Foo로 정의되어 있다고 하자.
1 2 3 | class Foo( object ): pass |
이때 ./위치에서 이 클래스를 가져다 쓰려면 다음과 같이 여러가지 방법이 있다.
(python2.x의 경우 주의할 점은 home 폴더 안에 __init__.py 파일이 dummy로 라도 생성되어 있어야 한다.)
방법1
1 2 3 | import home.test f = home.test.Foo() |
방법2
1 2 3 | from home.test import Foo f = Foo() |
방법3
1 2 3 | from home import test f = test.Foo() |
방법4
1 2 3 | import home.test as t f = t.Foo() |
일반적으로는 방법2가 가장 편리하다. 단 Foo말고 다른 것도 많을 경우 하나씩 지정해주기가 힘들다. 이때는 import Foo 대신 import *를 해주는 방법이 있다.
방법4도 편할 수 있다. 단 import를 import home.test.Foo as F 처럼 class단위까지 바로 할 수는 없다.
반응형
'Programming > Python' 카테고리의 다른 글
Anaconda & Jupyter (0) | 2018.03.23 |
---|---|
python numpy (0) | 2018.02.28 |
python virtualenv 가상환경 (0) | 2017.11.16 |
python에서 doxygen 사용해보기 (0) | 2017.11.14 |
python 시간관련 함수 (0) | 2017.10.31 |