현재 위치가 ./ 이고 내가 정의한 클래스의 위치가 ./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

+ Recent posts