클래스를 여러 개 선언하여 용도별로 사용하는 방식을 사용해, 모듈화 시키는 방식의 프로그래밍을 진행할 수 있습니다. 기본적으로 다른 파일의 코드를 사용하는 방식은 아래와 같습니다.
from <py 파일 경로> import <변수 | 함수 | 클래스명>
아래와 같이 예시를 살펴 보겠습니다.
from my_email import Email
from my_news import News
from my_excel import Excel
m_email = Email()
m_news = News()
m_excel = Excel()
앞선 아티클에서 클래스를 임포트 하는 방식을 그대로 사용합니다. 특정 py파일을 from으로 불러오고, 그 안의 클래스를 import로 불러옵니다. 그리고 그 클래스를 ()로 호출해 변수로 리턴하는 방식입니다.
그럼 위의 예제를 실제 코드로 구현하여 실습해 보겠습니다.
# my_email.py
class Email:
def __init__(self):
self.from_email = ''
self.to_email =''
self.subject= ''
self.contents = ''
def send_mail(self):
print('From: ' + self.from_email)
print('To: ' + self.to_email)
print('Subject: ' + self.subject)
print('From: ' + self.from_email)
print('Contents: ' + self.contents)
# my_news.py
class News:
def __init__(self):
self.news = []
def find_news(self, keyword):
for i in range(10):
self.news.append('\'' + str(i) + 'news: ' + keyword + '\'')
print('Collected')
return self.news
# my_excel.py
class Excel:
def __init__(self):
self.excel_file = ''
def save_to_excel(self, data):
print('Save (' + str(len(data)) + ')data: ' + self.excel_file)
# test.py
from my_email import Email
from my_news import News
from my_excel import Excel
m_email = Email()
m_news = News()
m_excel = Excel()
news_list = m_news.find_news('Beenzino')
m_email.from_email = 'example@qmail.com'
m_email.to_email = 'sample@daver.com'
m_email.subject = 'Dear. '
for news in news_list:
m_email.contents = m_email.contents + news + '\n'
m_email.send_mail()
m_excel.excel_file = 'result.xlsx'
m_excel.save_to_excel(news_list)
'''
출력
Collected
From: example@qmail.com
To: sample@daver.com
Subject: Dear.
From: example@qmail.com
Contents: '0news: Beenzino'
'1news: Beenzino'
'2news: Beenzino'
'3news: Beenzino'
'4news: Beenzino'
'5news: Beenzino'
'6news: Beenzino'
'7news: Beenzino'
'8news: Beenzino'
'9news: Beenzino'
Save (10)data: result.xlsx
'''
'Programming > Python 업무 자동화' 카테고리의 다른 글
4. 클래스(1) - 클래스 만들기 (0) | 2025.03.17 |
---|---|
3. 함수(3) - 파이썬 내장함수 2 (0) | 2025.03.14 |
3. 함수(3) - 파이썬 내장함수 1 (0) | 2025.03.12 |
3. 함수(2) - 함수의 활용 (0) | 2025.03.06 |
3. 함수(1) - 함수의 정의 (0) | 2025.03.06 |