๐Ÿ’ปPython:: packages

์œผ๋‹ยท2022๋…„ 12์›” 10์ผ
0

Study

๋ชฉ๋ก ๋ณด๊ธฐ
6/14

๐Ÿ“‚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ํ•œ ์ ‘๊ทผ์ž

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

0๊ฐœ์˜ ๋Œ“๊ธ€

Powered by GraphCDN, the GraphQL CDN