파이썬(Python)

[ Basic ] Python import(파이썬 import)

카루루1007 2022. 12. 10. 23:04
728x90
반응형
SMALL
import 모듈

import파이썬의 모듈을 불러오는 기능을 합니다.

모듈확장자가 [ .py ]로 되어있는 파이썬 파일을 말합니다.

모듈 안에는 변수, 함수, 클래스와 같은 것들이 정의되어 있습니다.

 

파이썬의 내장모듈인 math.py를 불러오려면

아래 그림과 같이 하면 됩니다.

이렇게 math 모듈을 import 하면 math.py 파일 안의 변수, 함수, 클래스를 사용할 수 있습니다.

 

math 모듈 안에 pi 라는 변수 안에 pi 값이 정의되어 있습니다.

pi 값을 불러오려면 아래 그림과 같이 합니다.

위 코드의  실행 결과는 [ 3.141592653589793 ]입니다.

함수와 클래스의 사용방법도 동일합니다.

 

import 모듈 as 모듈명의줄임말

3번째 줄을 보시면 됩니다.

import math 를 했을 경우 pi를 불러오기 위해서는

[ math.pi ]를 했지만

import math as ma 를 할 경우 pi를 불러오기 위해

[ ma.pi ]를 했습니다.

math 모듈을 불러온다. 대신 이름은 ma로 사용하겠다 라는 의미입니다.

math 모듈의 경우 이름이 짧아 사용하는데 어려움이 있으나,

긴 이름을 가진 모듈의 경우 이렇게 줄임말을 사용하는 것이

코딩을할때 피로도가 덜할것입니다.  

 

반응형

그러면 이 상태에서 math 모듈명을 사용해서

pi 변수에 접근할 수 있는 지 보겠습니다. 

위 코드를 실행하면 에러가 발생합니다.

이미 우리는 math라는 모듈 이름 대신 ma를 사용한다고

선언하였기 때문에 math 모듈이름을 사용하는 것은 안됩니다.

 

from 모듈 import *

math라는 모듈 안에 있는 모든 것(변수, 함수, 클래스)을 불러온다는 의미입니다.

기존에는 [ math.pi ] 또는 [ ma.pi ]를 사용해서 pi 값을 사용했습니다.

하지만 이렇게 하면 모듈명을 사용하지 않고

[ pi ]라는 변수를 사용할 수 있습니다. 

출력 결과는 [ 3.141592653589793 ]입니다.

조금 더 간단하게 pi에 접근할 수 있습니다.

 

하지만 이렇게 할때에는 주의해야 할 점이 있습니다.

이렇게 두개의 파일을 만들어서 import 해보겠습니다.

import1.py 파일 안에는 PI = 3.141592

import2.py 파일 안에는 PI = 3.14

로 정의해 놨습니다.

위 두개의 그림에서 차이는 모듈을 import 하는 순서만 다르고

나머지는 같습니다.

두 코드 중 

위 코드의 결과는 3.14

아래 코드의 결과는 3.141592

입니다. 

 

[ from 모듈명 import * ]의 형식으로 여러개의 모듈을 불러왔을 때

만에하나 서로 다른 모듈에서

동일한 이름의 변수, 함수, 클래스를 사용하고 있다면

나중에 불러온 모듈의 변수, 함수, 클래스가 우선합니다.

SMALL
728x90
from 패키지.패키지.모듈 import 변수, 함수, 클래스

위 그림처럼 from ~ import ~ 되어 있는 것을 보신적이 있을 겁니다.

이렇게 설명하는게 맞는지는 모르겠지만,

selenium 이라는 패키지(폴더) 안에

webdriver 라는 패키지(폴더) 안에

chrome 라는 패키지(폴더) 안에

service 라는 모듈(service.py)에서

service 라는 함수를 모듈명 없이 그냥 사용하겠다

라는 의미입니다. 

 위 그림은 selenium 패키지(폴더)의 내용입니다.

위 그림은 selenium 패키지(폴더) 안의 webdriver 패키지(폴더) 내용입니다.

여기서 chrome 패키지(폴더)로 들어가면 아래 그림과 같습니다.

보시면 [ service.py ]라는 파일이 있습니다.

service.py 파일의 내용을 보겠습니다.

정확히 어떻게 되어 있는지는 모르겠지만,

[ service.py ]라는 파일 안에 [ service 클래스 ]가 정의되어 있습니다.

 

만약 아래 그림과 같이 import 하면

service 클래스를 사용하기 위해서는 아래와 같이 작성해야 할 겁니다.

 

아래 그림과 같이 import를 한다면

service 클래스를 아래 그림과 같이 사용이 가능합니다.

 

728x90
반응형
LIST