🐍 파이썬 (Python)

파이썬 (python) - λͺ¨λ“ˆ , νŒ¨ν‚€μ§€ ( module , package ) 생성 , import와 alias

Newmon 2019. 12. 9. 20:11

*νŒ¨ν‚€μ§€ package

κΈ°λŠ₯λ“€μ˜ λ¬ΆμŒμž…λ‹ˆλ‹€. 기본적으둜 νŒŒμ΄μ¬μ„ 처음 λ°°μšΈλ•Œ μ‚¬μš©ν•˜λŠ” print, reverse , range 도 파이썬이 μ œκ³΅ν•˜λŠ” νŒ¨ν‚€μ§€μ˜ ν•¨μˆ˜μž…λ‹ˆλ‹€. (built-in ν•¨μˆ˜)

μ‰½κ²Œ λ§ν•˜λ©΄ 폴더 라고 λ³΄μ‹œλ©΄ λ©λ‹ˆλ‹€. νŒ¨ν‚€μ§€ μ•ˆμ—λŠ” __init__.pyλΌλŠ” 파일이 ν¬ν•¨λ˜μ–΄μ•Όν•©λ‹ˆλ‹€.

(이뢀뢄은 파이썬 2.xxxx 버젼이 μΈμ‹ν•˜κΈ° μœ„ν•¨μž…λ‹ˆλ‹€. 3.xxx버젼은 이 νŒŒμΌμ„ ν¬ν•¨μ‹œν‚€μ§€ μ•Šμ•„λ„ νŒ¨ν‚€μ§€λ‘œ μΈμ‹ν•©λ‹ˆλ‹€.)

*λͺ¨λ“ˆ module

νŒ¨ν‚€μ§€ μ†μ˜ ν•˜λ‚˜ν•˜λ‚˜μ˜ κ΅¬μ„±μš”μ†Œλ₯Ό λ§ν•©λ‹ˆλ‹€.

μ‰½κ²Œ λ§ν•˜λ©΄ 폴더 μ†μ˜ xxxx.py νŒŒμΌλ“€ 이라고 μƒκ°ν•˜λ©΄ λ©λ‹ˆλ‹€. 

 

*νŒ¨ν‚€μ§€ 및 λͺ¨λ“ˆ μƒμ„±ν•˜κΈ°. 

둜또번호λ₯Ό λ½‘μ•„μ˜€κ³ , ν™•λ₯ μ„ κ³„μ‚°ν•˜λŠ” νŒ¨ν‚€μ§€λ₯Ό λ§Œλ“ λ‹€κ³  ν•©μ‹œλ‹€. κ·Έλ ‡λ‹€λ©΄ νŒ¨ν‚€μ§€μΈ 폴더λ₯Ό λ¨Όμ € λ§Œλ“€μ–΄ μ€λ‹ˆλ‹€. 

κ°€μž₯ μƒμœ„ 폴더가 될 νŒ¨ν‚€μ§€

νŒ¨ν‚€μ§€λͺ…은 lottoκ°€ λ˜κ² μŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ 이 폴더 μ•ˆμ— λͺ¨λ“ˆνŒŒμΌμ„ 생성해 μ€λ‹ˆλ‹€.

1. __pycache__   : 클래슀 μƒμ„±μ‹œμ— νŒŒμ΄μ¬μ—μ„œ μžλ™μœΌλ‘œ μƒμ„±λ˜λŠ” 파일. (λ”°λΌμ„œ μ‚¬μš©μžκ°€ λ§Œλ“€ ν•„μš”X)

2. __init__ : 파이썬 2.xxλ²„μ Όμ˜ ν˜Έν™˜μ„ μœ„ν•΄ λ§Œλ“€μ–΄μ€€λ‹€. λ‚΄μš©μ€ 없어도 λœλ‹€. 이름은 곡톡 __init__.py

3.make_number :

from random import randint

class MakeNum():

    def makenum():
        s = []
        for i in range(7) :      #7번 반볡
            a = randint(1,50)    #λ‘œλ˜λŠ” 1 ~ 50번
            s.append(a)          #μƒμ„±λœ 번호 s에 μ €μž₯
        print(s)
    

4. probability.py

def proba () :
    a = input("κ΅¬λ§€ν•œ 개수")
    print(int(a)*0.0000122774,"%μž…λ‹ˆλ‹€.")

 

*νŒ¨ν‚€μ§€ 및 λͺ¨λ“ˆ μ‚¬μš©ν•˜κΈ°

μ—¬κΈ°κΉŒμ§€ ν•˜λ©΄ νŒ¨ν‚€μ§€κ°€ lottoνŒ¨ν‚€μ§€κ°€ μ™„μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이제 lotto폴더 λ°–μ—μ„œ νŒŒμΌμ„ ν•˜λ‚˜ μƒμ„±ν•©λ‹ˆλ‹€.

μ•„κΉŒ λ§Œλ“  3번파일 (λ²ˆν˜Έμƒμ„± 파일)은 Classκ°€ λ“€μ–΄μžˆμŠ΅λ‹ˆλ‹€. 

#클래슀의 경우 μž„ν¬νŠΈ 방식

# 1 (클래슀 import)

from lotto.make_number import MakeNum
MakeNum.makenum()

# 2 (클래슀 import)

from lotto.make_number import *   # *λŠ” 파일 전체λ₯Ό μž„ν¬νŠΈ ν•œλ‹€λŠ” 뜻.
MakeNum.makenum()

# 3 (클래슀 import)

from lotto.make_number import MakeNum as MN    # MakeNum을 MN으둜 ν˜ΈμΆœν•˜κ² λ‹€λŠ” 뜻.
MN.makenum()

( 2번의 import* 의 κ²½μš°λŠ” λ©”λͺ¨λ¦¬ λ‚­λΉ„κ°€ μ‹¬ν•˜μ—¬ μ΄λŸ¬ν•œ 방식은 μ’‹μ§€ μ•Šλ‹€κ³ ν•©λ‹ˆλ‹€)

#ν•¨μˆ˜ μž„ν¬νŠΈ


#방법 1
from lotto.probability import proba 
proba()

#방법 2
import lotto.probability as t
t.proba()

#방법 3
import lotto.probability
lotto.probability.proba()