Maron's DATA Log

[Python] 모듈, 패키지, 내장함수, 외장함수 본문

Python

[Python] 모듈, 패키지, 내장함수, 외장함수

maron2ee 2020. 12. 1. 18:00

# 모듈

: 함수장, 클래스 등 문장을 담고있는 파일

확장자 명 : .py

 

# 일반 가격

def price(people):

   print("{0}명 가격은 {1}원 입니다.".format(people, people * 10000))

 

# 조조 할인 가격

def price_morning(people):

   print("{0}명 조조 할인 가격은 {1}원 입니다.".format(people, people * 6000))

 

# 군인 할인 가격

def price_soldier(people):

   print("{0}명 군인 할인 가격은 {1}원 입니다.".format(people, people * 4000))

 

1.

import theater_module

theater_module.price(3) # 3명이서 영화 보러 갔을 때 가격

theater_module.price_morning(4) # 4명이서 조조 할인 영화

theater_module.price_soldier(5) # 5명의 군인이 영화 보러 갔을때

 

2.

import theater_module as mv

mv.price(3)

 

3.

from theater_module import *

price(3)

 

4.

from theater_module import price, price_morning

price(3)

 

5. 

from theater_module import price_soldier as price

price(3)

 

 

# 패키지

: (하나의 디렉토리에) 모듈들을 모아놓은 집합 

>> Travel     # 폴더

 

  >> thailand.py

class ThailandPackage:

def detail(self):

print("[태국 패키지 3박 5일] 방콕, 파타야 여행 (야시장 투어) 50만원")

 

  >> vietnam.py

class VietnamPackage:

def detail(self):

print("[베트남 패키지 3박 5일] 다낭 효도 여행 60만원")

 

>> practice.py

import travel.thailand     # .뒤에는 모듈이나 패키지만 가능, 클래스나 함수는 import 불가능

trip_to = travel.thailand.ThailandPackage()

trip_to.detail()

 

from travel.thailand import ThailandPackage    # travel 패키지 안에 있는 thailand 모듈에서 thailandpackage 클래스 import

# from ~ import 구문 안에서는 모듈, 클래스, 패키지, 함수 모두 import 가능

trip_to = ThailandPackage()     # 객체 만들기

trip_to.detail()

 

from travel import vietnam

trip_to = vietnam.VietnamPackage() 

trip_to.detail()

 

 

# __all__

>> Travel     # 폴더

  >> __init__.py

__all__=["vietnam"]

 

>> practice.py

from travel import *

trip_to = vietnam.VietnamPackage( )

trip_to.detail( )

 

trip_to = thailand.thailandPackage()

trip_to.detail( )     # -> error :

  >> __init__.py

__all__=["vietnam", "thailand"]

 

>> practice.py

from travel import *

trip_to = thailand.ThailandPackage()

trip_to.detail( )

 

 

# 모듈 직접 실행

>> thailand.py

class ThailandPackage:

def detail(self):

print("[태국 패키지 3박 5일] 방콕, 파타야 여행 (야시장 투어) 50만원")

 

if __name__ == "__main__":

print("Thailand 모듈을 직접 실행")

print("이 문장은 모듈을 직접 실행할 때만 실행돼요")

trip_to = ThailandPackage()

trip_to.detail()

else:

print("Thailand 외부에서 모듈 호출")

 

>> parictice.py

from travel import *

trip_to = thailand.ThailandPackage()

trip_to.detail( )

 

 

# 패키지, 모듈 위치

import inspect

import random

print(inspect.getfile(random))

 

import travel

print(inspect.getfile(travel))

 

 

# pip install

# pypi : pypi.org

 

from bs4 import BeautifulSoup

soup = BeautifulSoup("<p>Some<b>bad<i>HTML")

print(soup.prettify())

 

>> 오른쪽 terminal에

pip list

pip install --upgrade beautifulsoup4

pip uninstall beautifulsoup4

 

 

# 내장함수

# input : 사용자 입력을 받는 함수

language = input("무슨 언어를 좋아하세요?")

print("{0}은 아주 좋은 언어입니다!".format(language))

 

# dir : 어떤 객체를 넘겨줬을 때 그 객체가 어떤 변수와 함수를 가지고 있는지 표시

 

print(dir( ))

import random     # 외장 함수

print(dir( ))

import pickle

print(dir( ))

 

print(dir(random))     # random 모듈 안에서 쓸 수 있는 내용들

 

lst = [1, 2, 3]

print(dir(lst))

 

name = "Jim"

print(dir(name))

 

# list of python builtins : docs.python.org/3/library/functions.html

 

 

# 외장함수

# list of python modules : docs.python.org/3/py-modindex.html

 

# glob : 경로 내의 폴더 / 파일 목록 조회 (윈도우 dir)

import glob

print(glob.glob("*.py"))     # 확장자가 py 인 모든 파일

 

# os : 운영체제에서 제공하는 기본 기능

import os

print(os.getcwd( ))     # 현재 디렉토리 표시

 

folder = "sample_dir"

 

if os.path.exists(folder):

   print("이미 존재하는 폴더입니다.")

   os.rmdir(folder)     # 삭제

   print(folder, "폴더를 삭제하였습니다.")

else:

   os.makedirs(folder)     # 폴더 생성

   print(folder, "폴더를 생성하였습니다.")

 

print(os.listdir( ))

 

# time : 시간 관련 함수

import time

print(time.localtime( ))

print(time.strftime("%Y-%m-%d %H:%M:%S"))

 

import datetime

print("오늘 날짜는 ", datetime.date.today( ))

 

# timedelta : 두 날짜 사이의 간격

today = datetime.date.today( )     # 오늘 날짜 저장

td = datetime.timedelta(days=100)     # 100일 저장

print("우리가 만난지 100일은", today + td)    # 오늘부터 100일 후

 

'Python' 카테고리의 다른 글

[Python] Pandas  (0) 2020.12.04
[Python] NumPy  (0) 2020.12.02
[Python] 예외처리 - Try / Except / Finally  (0) 2020.12.01
[Python] 클래스 / 메소드 (Method) / 상속  (0) 2020.12.01
[Python] 입출력  (0) 2020.11.30
Comments