• ๐Ÿ’ปPython:: packages

    2024. 1. 26.

    by. @leeeun

    ๐Ÿ“‚Packages


    ๋ชจ๋“ˆ-> ํ•จ์ˆ˜, ํด๋ž˜์Šค, ๋ณ€์ˆ˜ ๋“ฑ์˜ ์ง‘ํ•ฉ
    ํŒจํ‚ค์ง€->๋ชจ๋“ˆ์„ ๋ชจ์•„๋†“์€ ํด๋”. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•จ.

    ํŒŒ์ด์ฌ ํŒจํ‚ค์ง€=๋””๋ ‰ํ„ฐ๋ฆฌ+ํŒŒ์ด์ฌ ๋ชจ๋“ˆ
    ํŒจํ‚ค์ง€ ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ƒ์„ฑํ•  ๋•Œ ๊ณต๋™ ์ž‘์—…, ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์œ ๋ฆฌํ•˜๋„๋ก

    game/ #game ํŒจํ‚ค์ง€. ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ
    	__init__.py
        sound/ #์„œ๋ธŒ ๋””๋ ‰ํ„ฐ๋ฆฌ
        	__init__.py
            echo.py #ํŒŒ์ด์ฌ ๋ชจ๋“ˆ
            wav.py
        graphic/ #์„œ๋ธŒ ๋””๋ ‰ํ„ฐ๋ฆฌ
        	__init__.py
            scree.py
            render.py

     

    ๐Ÿ“Œ ํŒจํ‚ค์ง€ ์ƒ์„ฑํ•˜๊ธฐ

     

    ํŒจํ‚ค์ง€ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ

    • ์›Œํ‚น ๋””๋ ‰ํ„ฐ๋ฆฌ์— gqme ๋””๋ ‰ํ„ฐ๋ฆฌ, ์„œ๋ธŒ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ƒ์„ฑ
    • ๊ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋‚ด์šฉ์ด ์—†๋Š” __init__.py ํŒŒ์ผ ์ƒ์„ฑ
    • ๋””๋ ‰ํ„ฐ๋ฆฌ ์•ˆ์˜ ๋ชจ๋“ˆ ํŒŒ์ผ๋“ค (echo.py, wav.py ๋“ฑ) ์ƒ์„ฑ
    #echo. py
    def echo_test:
    	print("echo")
    game ๋””๋ ‰ํ„ฐ๋ฆฌ ์•ˆ์˜ sound ๋””๋ ‰ํ„ฐ๋ฆฌ ์•ˆ์˜ echo.py ์•ˆ์˜ echo_test ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰

     

    ๐Ÿ“Œ ํŒจํ‚ค์ง€ ์‹คํ–‰ํ•˜๊ธฐ

    (1) echo ๋ชจ๋“ˆ์„ import

    import game.sound.echo
    game.sound.echo.echo_test() #echo ์ถœ๋ ฅ๋จ.

    (2) echo ๋ชจ๋“ˆ์ด ์žˆ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ import

    from game.sound import echo
    echo.echo_test() #echo ์ถœ๋ ฅ๋จ.

    (3) echo ๋ชจ๋“ˆ์˜ echo_test ํ•จ์ˆ˜๋ฅผ ์ง์ ‘ import

    from game.sound.echo import echo_test
    echo_test() #echo ์ถœ๋ ฅ๋จ.

    ๋ถˆ๊ฐ€๋Šฅํ•œ ์ผ€์ด์Šค

    from game
    import game.sound.echo.echo_test()

    '.' ๋„ํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ importํ•  ๋•Œ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ํ•ญ๋ชฉ์€ ๋ฐ˜๋“œ์‹œ ๋ชจ๋“ˆ ๋˜๋Š” ํŒจํ‚ค์ง€์—ฌ์•ผ ํ•จ.

     

    ๐Ÿ“Œ__init__.py

     

    ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ํŒจํ‚ค์ง€์˜ ์ผ๋ถ€์ž„์„ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• 
    pythom 3.3 ๋ฒ„์ „ ์ด์ „์—๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์— init.pyํŒŒ์ผ์„ ํฌํ•จํ•˜์ง€ ์•Š์œผ๋ฉด ํŒจํ‚ค์ง€๋กœ ์ธ์‹๋˜์ง€ ์•Š๋Š”๋‹ค. (์ง€๊ธˆ์€ ์ธ์‹)

    from game.sound import * 
    echo.echo_test() #์˜ค๋ฅ˜ ๋ฐœ์ƒ
    
    ํŠน์ • ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ชจ๋“ˆ์„ *์„ ์‚ฌ์šฉํ•ด์„œ importํ•  ๋•Œ
    __init__.py ํŒŒ์ผ์— __all__ ๋ณ€์ˆ˜ ์„ค์ •
    
    #sound ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ __init__.py
    __all__=[echo]
    sound ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ * ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ importํ•˜๋ฉด echo๋ชจ๋“ˆ์ด import๋œ๋‹ค๋Š” ์˜๋ฏธ. 
    
    all๊ณผ ์ƒ๊ด€์—†์ด ๋ฌด์กฐ๊ฑด import๋˜๋Š” ๊ฒฝ์šฐ
    from a.b.c import *์—์„œ c๊ฐ€ ๋ชจ๋“ˆ์ธ ๊ฒฝ์šฐ

     

    relative ํŒจํ‚ค์ง€

    • ๊ฐ™์€ ํŒจํ‚ค์ง€ ์•ˆ์— ์žˆ๋Š” ์„œ๋ธŒ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ชจ๋“ˆ์ด ๋‹ค๋ฅธ ์„œ๋ธŒ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ
    #์œ„ ์˜ˆ์ œ์˜ render.py
    from game.sound.echo import echo_test
    # frome ..sound.echo import echo_test๋กœ ๋Œ€์ฒด๊ฐ€๋Šฅ -> relativeํ•œ import
    ..์€ render.py ํŒŒ์ผ์˜ ๋ถ€๋ชจ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์˜๋ฏธ
    def render_test():
    	print("render")
        echo_test()
        
    render_test๋ฅผ ์‹คํ–‰ํ•˜๋ฉด echo_test์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰

    relativeํ•œ ์ ‘๊ทผ์ž

    • .. ๋ถ€๋ชจ ๋””๋ ‰ํ„ฐ๋ฆฌ, . ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ

    ๋Œ“๊ธ€