<jupyter_start><jupyter_text>Youtube_NadoCoding_module_5:14:23Youtube_NadoCoding_package_5:24:10  module- 필요한 것들끼리 부품처럼 만들어진 파일.- ex 자동차) 사고가 났는데 범퍼만 파손됐으면 -> 범퍼 부품만 교체.- 유지보수, 코드의 재사용 용이 하다는 장점이 있다.<jupyter_code># theater_module.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))
import theater_module
theater_module.price(3)  # 3명이서 영화 보러 갔을 때 가격
theater_module.price_morning(4)  # 4명이서 조조할인 영화 보러 갔을때
theater_module.price_soldier(5)  # 5명의 군인이 영화 보러 갔을때
# module명이 길때, 별명을 통해서 줄여서 사용할 수 있다

import theater_module as mv

mv.price(3)
mv.price_morning(4)
mv.price_soldier(5)
# import 대신에 from import

from theater_module import *
# from random import * 
price(3)
price_morning(4)
price_soldier(5)
# from import 변형

from theater_module import price, price_morning
price(5)
price_morning(6)
# price_soldier(7)    # price_soldier 는 안 불러왔엇으니까 사용 불가.

from theater_module import price_soldier as price
price(5)<jupyter_output>5명 군인 할인 가격은 20000원 입니다.<jupyter_text>package- module들을 모아놓은 집합- 하나의 디렉토리에 여러 module파일들으 모아둔 것<jupyter_code># thailnad.py 패키지

class ThailandPackage:
    def detail(self):
        print("[태국 패키지 3박 5일] 방콕, 파타야 여행 (야시장 투어) 50만원")
# vietnam.py 패키지

class VietnamPackage:
    def detail(self):
        print("[베트남 패키지 3박 5일] 다낭 효도 여행 60만원")
import travel.thailand
# import travel.thailand.ThailandPackage    # 이런식으로는 사용 불가능!
trip_to = travel.thailand.ThailandPackage()
trip_to.detail()
# 그러나, import 구문 말고 from import 구문에선 사용가능하다
from travel.thailand import ThailandPackage
trip_to = ThailandPackage()
trip_to.detail()


from travel import thailand
trip_to = thailand.ThailandPackage()
trip_to.detail()
from travel import vietnam1
trip_to = vietnam1.VietnamPackage()
trip_to.detail()
#### File > Preferences > Settings > linintg ????<jupyter_output><empty_output><jupyter_text>\__all__<jupyter_code># from random import *
from travel import *

# trip_to = thailand.ThailandPackage()
trip_to = thailand.ThailandPackage()
trip_to.detail()<jupyter_output><empty_output><jupyter_text>module 직접 실행<jupyter_code>from travel import *

trip_to = thailand.ThailandPackage()
trip_to.detail()<jupyter_output><empty_output><jupyter_text>패키지, 모듈 위치<jupyter_code>import inspect
import random
print(inspect.getfile(random))
print(inspect.getfile(thailand))<jupyter_output>C:\Users\user\anaconda3\lib\random.py
{'fraction_non_alphanumeric': 0.1063664596273292, 'fraction_numerical': 0.02406832298136646, 'mean_word_length': 5.41044776119403, 'pattern_counts': {'":': 0, '<': 19, '<?xml version=': 0, '>': 23, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '296011', 'license': 'MIT', 'n_tokens_mistral': 1298, 'n_tokens_neox': 1461, 'n_words': 245, 'path': 'NadoCoding_PythonBasic/NadoCoding_11_Module,Package.ipynb', 'repo_name': 'sukyeonging/TIL', 'size': '2576'}