반응형

import 하는 방법에 대한 질문이 있어서 간단하게 import하는 방법에 대해 남기려고 합니다.

흔히 다음과 같은 코드들을 입력해 보셨을 겁니다.

import time
import os
import random
.
.
.

이러한 모듈은 사실 Python을 설치할 당시 설치폴더에 함께 설치된 것으로 아래 사진과 같이 random.py 파일을 확인하실 수 있습니다.

사전에 설치된 파이썬 모듈

자주 쓰는 파일들이기 때문에 설치된 것으로 단순히 import로 하면 사용하실 수 있습니다.

그러나 만일 자신의 용도에 맞게 자신이 만든 .py파일이 있다면 어떻게 사용할 수 있을까요?

 

예를 들어 사칙연산 프로그램을 만들어보겠습니다.

A.py에서는 계산관련 함수를 사용만 하고 B.py에서는 그 함수를 만들겠습니다.

즉, B.py의 함수를 A.py에서 사용하는 것입니다.

 

그러면 먼저 B.py는 다음과 같이 작성할 수 있습니다.

B.py
def sum(a,b):
	return a + b
    
def sub(a,b):
	return a-b
    
def mul(a,b):
	return a*b

def div(a,b):
	return a/b

 

그러면 A.py에서 B.py의 sum, sub, mul, div 함수를 사용하려면 어떻해야 할까요?

우선 사진과 같이 같은 폴더상에 위치해야 합니다.

물론 같은 폴더상에 위치하지 않고도 접근하는 방법이 있지만 처음이라면 이 방법이 가장 간단합니다.

같은 폴더에 위치한 A.py와 B.py

그러면 A.py는 다음과 같은 코드로 B.py를 불러와 해당하는 코드를 사용할 수 있습니다.

A.py
#방법1
import B

print(B.sum(3,4))

#방법2
from B import *

print(sum(3,4))

이때 차이는 방법 1의 경우 파일명.함수명 의 형태를 유지해주어야 합니다. 파이썬이 sum이 누구로 부터 온 것인지 모르기 때문입니다.

따라서 B.sum(3,4) 라고 한 모습을 볼 수 있습니다.

 

하지만 매번 B.xxx, B.ccc이런 식이라면 귀찮을 수도 있습니다.

그래서 방법2와 같이 어떤 파일에서 온 것인지를 적어주면 파일명.함수명이 아닌 함수명만 이용할 수 있습니다.

from [파일이름] import [넣을 함수,변수 이름]

import 다음에는 [넣을 함수,변수 이름]을 입력해주어야 하지만 모두 넣을 것이라면 " * "을 사용하면 모든 내용이 담기게 됩니다.

반응형
Dvlp.Jun