ID:
PW:

     0 ºÐ
     6 ºÐ

¿£Áö´Ï¾î µ¹Á¾
  dolljong
ÇÁ·Î±×·¡¹Ö Tips
ÇÁ·Î±×·¡¹Ö¿¡ °üÇÑ TipÀ» °øÀ¯ÇÏ´Â °÷ÀÔ´Ï´Ù.


[python] (¿£Áö´Ï¾î¸¦ À§ÇÑ) ÆÄÀ̽㠽ÃÀÛÇϱâ[8-1]ÆÐŰÁö
À̼®Á¾  2022-09-04 21:44:09, Á¶È¸ : 468, Ãßõ : 67
- Download #1 : engpython8.png (13.2 KB), Download : 14


[8]¿¡¼­ °è¼Ó

3. package(ÆÐŰÁö)

package´Â µð·ºÅ丮´Ù. µð·ºÅ丮 À̸§ÀÌ´Ù. ¿¹¸¦ µé¾î µµ·Î¼³°è ÆÐŰÁö¸¦ ¸¸µç´Ù°í ÇÏÀÚ. µµ·Î ¾È¿¡´Â Åä°ø±¸°£, ±³·®±¸°£, Åͳα¸°£ÀÌ ÀÖÀ» °ÍÀÌ´Ù. ±×·¯¸é µµ·Î¼³°è ÆÐŰÁöÀÇ À̸§À» roaddesignÀ̶ó°í ÇÏ°í ±× ¾È¿¡ µµ·Î¼±Çü°ü·ÃÀº road.py Åä°øÀº earth.py, ±³·®Àº bridge.py, ÅͳÎÀº tunnel.py¶ó´Â À̸§À¸·Î °¢°¢ ÆÐŰÁö¸¦ ¸¸µé¾ú´Ù°í ÇÏÀÚ.  ÀÌ·¸°Ô package·Î ¸¸µå´Â ÀÌÀ¯´Â ´Ù¸¥»ç¶÷°ú °øÀ¯Çϱ⠽±´Ù´Â ÀåÁ¡ÀÌ ÀÖ´Ù. µð·ºÅ丮 Àüü¸¦ Àü´ÞÇÏ¸é µÇ±â ¶§¹®ÀÌ´Ù.

µµ·Î¼³°è ÆÐŰÁö µð·ºÅ丮´Â ¾Æ·¡¿Í °°ÀÌ ±¸¼ºµÉ °ÍÀÌ´Ù.

roaddesign
   road.py
   earth.py
   bridge.py
   tunnel.py

 

°¢°¢ÀÇ ¸ðµâµéÀÇ ³»¿ëÀº ¾Æ·¡¿Í °°´Ù. road.py¿¡´Â ¼±Çü°ü·Ã ÇÔ¼ö align()°¡, earth.py¿¡´Â ÀýÅä¿¡ °ü·ÃµÈ ÇÔ¼ö cutting()ÀÌ, bridge.py¿¡´Â °Å´õ¿¡ °ü·ÃµÈ ÇÔ¼ö girder()°¡, tunnel.py¿¡´Â Á¦Æ®ÆÒ¿¡ °ü·ÃµÈ ÇÔ¼ö jetpan()ÇÔ¼ö¸¦ Á¤ÀÇÇß´Ù. °¢ÀÚ ¾Æ¹« µð·ºÅ丮¿¡ ¸¸µé¾îº¸ÀÚ. ³ªÁß¿¡ ÀÌ µð·ºÅ丮´Â ¿øÇÏ´Â ÇÁ·ÎÁ§Æ® ¾Æ·¡·Î º¹»çÇÏ´Â °Íµµ ½Ç½ÀÇØ º¼ °ÍÀÌ´Ù.

 

print("Road design")

def align():
  print(
"Road design align function")

 

 

print("Earth work")

def cutting():
  print(
"Earth work cutting function")

 

print("Bridge work")

def girder():
  print(
"Bridge work girder function")

 

print("Tunnel Work")

def jetpan():
  print(
"Tunnel Work jetpan function")

 

°¢°¢ÀÇ ¸ðµâµéÀÇ Ã¹¹øÂ° ÁÙÀº importµÇ¸é¼­ ¹Ù·Î ½ÇÇàµÈ´Ù. importµÇ¾ú´Ù´Â °ÍÀ» Ç¥½ÃÇØÁÙ °ÍÀÌ´Ù.

 

ÀÌ roaddesign ÆÐŰÁö´Â ³»°¡ ¾²·Á°í ¸¸µé¾úÁö¸¸ À̰ÍÀ» ´Ù¸¥ »ç¶÷µéµµ ¾µ ¶§¸¦ ´ëºñÇØ¼­ º°µµÀÇ ÆÐŰÁö·Î ¸¸µç °ÍÀÌ´Ù. ÀÌÁ¦ ÀÌ ÆÐŰÁö(µð·ºÅ丮)¸¦ ºÒ·¯¿Í(importÇØ¼­) ½áº¸ÀÚ.

 

³»°¡ ÀÛ¾÷ÇÏ´Â Æú´õ°¡ d:\myproject\¶ó°í ÇÏÀÚ. ÀÌÀü¿¡ ¸¸µé¾ú´ø roaddesignµð·ºÅ丮¸¦ myproject¿¡ º¹»ç(¶Ç´Â ¸¸µé°í)Çϰí myproject µð·ºÅ丮·Î À̵¿Çؼ­ pythonÀ» ½ÇÇàÇÑ´Ù.

 

(base) D:\>cd myproject
(base) D:\myproject>python
Python
3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
>>>

 

ÀÌÁ¦ roaddesign ÆÐŰÁö¸¦ importÇÒ °ÍÀÌ´Ù. ÀÌÀü¿¡ ¼³¸íÇßµíÀÌ fromÀ» ÀÌ¿ëÇÑ´Ù.

>>> from roaddesign import road, earth, bridge, tunnel
Road design
Earth work
Bridge work
Tunnel Work

 

importµÇ¸é¼­ ½ÇÇàµÈ print¹® ´öºÐ¿¡ ³×°³ÀÇ ¸ðµâÀÌ ¸ðµÎ ¼º°øÀûÀ¸·Î importµÈ °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ÀÌÁ¦ °¢ ¸ðµâ¿¡ ÀÖ´Â ÇÔ¼öµéÀ» ½áº¸ÀÚ. road.py¸ðµâ¿¡´Â align()À̶ó´Â ÇÔ¼ö°¡ ÀÖ¾ú´Ù. align()ÇÔ¼ö¸¦ ¾²±âÀ§Çؼ­ ¸ðµâ¸íÀ» ¸í½ÃÇØÁà¾ß ÇÑ´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ. ´Ù¸¥ ¸ðµâÀÇ ÇÔ¼öµéµµ ¸¶Âù°¡Áö´Ù.

>>> road.align()
Road design align function
>>> bridge.girder()
Bridge work girder function

 

±×·±µ¥ ¿Ö? from roaddesign import *¸¦ ¾²Áö ¾Ê°í ³×°³ÀÇ ¸ðµâ¸íÀ» ´Ù ½áÁáÀ»±î? *°¡ ¸ðµç °ÍÀ» ÀǹÌÇÏ´Â °ÍÀ̶ó°í Çß´Ù¸é *¸¦ ¾²´Â °ÍÀÌ ÆíÇÏÁö ¾ÊÀ»±î? ½ÃµµÇغ¸ÀÚ. exit()À¸·Î ÆÄÀ̽ã ÀÎÅÍÇÁ¸®Å͸¦ ºüÁ® ³ª¿Ô´Ù°¡ ´Ù½Ã ÆÄÀ̽ã ÀÎÅÍÇÁ¸®ÅÍ·Î µé¾î°£ ´ÙÀ½¿¡ *·Î importÇØº¸ÀÚ.

>>> from roaddesign import *

 

¾Æ¹« Àϵµ ¾È ¹ú¾îÁø´Ù. °¢ ¸ðµâÀÌ importµÉ ¶§ ¸Þ½Ã°¡ Ãâ·ÂµÇ¾î¾ß Çϴµ¥ ¾Æ¹«°Íµµ ¾Èº¸ÀδÙ. ±×·¸´Ù¸é road.py¸ðµâÀÇ align()ÇÔ¼ö¸¦ ºÒ·¯¿Íº¸ÀÚ. road°¡ Á¤ÀǵǾîÀÖÁö ¾Ê´Ù´Â °ÍÀÌ´Ù.

>>> road.align()
Traceback (most recent call last):
  File
"", line 1, in
NameError: name
'road' is not defined

 

¿ª½Ã import¿¡ ½ÇÆÐÇÑ °ÍÀÌ´Ù. from roaddesign import * ÇßÀ» ¶§ ¾Æ¹«·± ¿¡·¯ ¸Þ½ÃÁö°¡ º¸ÀÌÁö ¾Ê¾Ò´Ù¸é import¿¡ ¼º°øÇÑ °Í ¾Æ´Ï¾ú³ª? import°¡ ¾ÈµÈ °ÍÀÇ ºñ¹ÐÀº *¿¡ ÀÖ´Ù. ÆÐŰÁö(µð·ºÅ丮)¿¡ ´ëÇØ¼­ *°¡ »ç¿ëµÉ ¶§ ºÒ·¯¿Ã ¸ðµâµé(pyÆÄÀϵé)ÀÇ ¸ñ·ÏÀº µû·Î Á¤ÇØÁà¾ß ÇÑ´Ù. ¾ÕÀÇ ¿¹¿¡¼­´Â *¿¡ ´ëÇÑ ¸ñ·ÏÀ» Á¤ÇØÁÖÁö ¾Ê¾Ò±â ¶§¹®¿¡ ¾Æ¹« ¸ðµâµéµµ ºÒ·¯¿ÀÁö ¾ÊÀº °ÍÀÌ´Ù. ÆÐŰÁö¿¡ ´ëÇØ *¿¡ ´ëÇÑ ¸ñ·ÏÀº ÆÐŰÁö µð·ºÅ丮¿¡ __init__.pyÆÄÀÏ¿¡ ½áÁØ´Ù. __init__.py ÀÌ ÆÄÀÏÀº ÆÄÀÏ¸í¿¡¼­µµ ´«Ä¡Ã§ ¼ö ÀÖµíÀÌ ÆÐŰÁö°¡ importµÉ ¶§ ¼öÇàÇÒ ¸í·ÉµéÀ» Á¤ÀÇÇØÁÖ´Â ÀÏÁ¾ÀÇ ¼³Á¤ÆÄÀÏÀÌ´Ù. ÆÄÀ̽㿡¼­ __·Î ½ÃÀÛÇϰí __·Î ³¡³ª´Â ÆÄÀϵéÀº ¼³Á¤ÆÄÀÏÀ̶ó°í »ý°¢ÇÏ¸é µÈ´Ù. __init__.pyÆÄÀÏÀ» ¸¸µé¾îº¸ÀÚ.

<__init__.py>

__all__ = ['road', 'earth', 'bridge', 'tunnel'

 

ÀÌ ÆÄÀÏÀ» roaddesignµð·ºÅ丮¿¡ ÀúÀåÇϸé roaddesign µð·ºÅ丮 ¾Æ·¡¿¡´Â ¾Æ·¡¿Í °°ÀÌ 5°³ÀÇ ÆÄÀÏÀÌ ÀÖ°Ô µÈ´Ù.

 roaddesign
   __init__.py
   road.py
   earth.py
   bridge.py
   tunnel.py

 

ÀÌÁ¦ exit()À¸·Î ÆÄÀ̽ã ÀÎÅÍÇÁ¸®Å͸¦ ºüÁ®³ª¿Ô´Ù°¡ ´Ù½Ã ÆÄÀ̽ã ÀÎÅÍÇÁ¸®Å͸¦ ½ÇÇàÇϰí *¸¦ ÀÌ¿ëÇØ¼­ importÇØº¸ÀÚ. ¸Þ½ÃÁö°¡ Ãâ·ÂµÈ °É º¸¸é Á¦´ë·Î importµÇ¾ú´Ù. ÇÔ¼ö¸¦ ºÒ·¯¿Íº¸ÀÚ. Àß ½ÇÇàµÈ´Ù.

>>> from roaddesign import *
Road design
Earth work
Bridge work
Tunnel Work
>>> road.align()
Road design align function

 

 

__init__.py

__init__.py¿¡ ´ëÇØ¼­ Á»´õ ¾Ë¾Æº¸ÀÚ. ÆÐŰÁö°¡ importµÉ ¶§ ÀÚµ¿À¸·Î ½ÇÇàµÇ´Â ÆÄÀÏÀ̶ó°í »ý°¢ÇÏ¸é µÈ´Ù. ±×·¯¸é ÀÌ ÆÄÀÏ ¾È¿¡¼­ ¸ðµâµéÀ» importÇÏ¸é µÇÁö ¾ÊÀ»±î?

<__init__.py>

from . import road
from . import earth
from . import bridge
from . import tunnel

 

__init__.py¾È¿¡ import¹®À» 4°³ ³Ö¾ú´Ù. from .ÀÇ .Àº ÇöÀç µð·ºÅ丮¶ó´Â ¶æÀÌ´Ù. ¾î¶² µð·ºÅ丮Àϱî? pythonÀÌ ½ÇÇàµÈ µð·ºÅ丮Àϱî? ¾Æ´Ï¸é roaddesignµð·ºÅ丮Àϱî? ´ç¿¬È÷ __init__.pyÀÌ ÀÖ´Â µð·ºÅ丮´Ù. ÀÌ ³»¿ëÀº __init__.py¾È¿¡ ÀÖ´Â ³»¿ëÀ̶ó´Â °É ±â¾ïÇÏÀÚ. Áï __init__.pyÀÌ ÀÖ´Â roaddesignµð·ºÅ丮¿¡¼­ road.py, earth.py, bridge.py, tunnel.pyÀ» ºÒ·¯¿À¶ó´Â ¶æÀÌ´Ù. ÀÌ·¸°Ô __init__.pyÀÇ ³»¿ëÀ» ¹Ù²Ù°í ³­ ´ÙÀ½¿¡ roaddesignÀ» ºÒ·¯¿Í º¸ÀÚ. ÆÄÀ̽ãÀ» ´Ù½Ã ½ÇÇàÇϰí roaddesignÀ» importÇϸé Á¦´ë·Î importµÇ´Â °É È®ÀÎÇÒ ¼ö ÀÖ´Ù.

>>> import roaddesign
Road design
Earth work
Bridge work
Tunnel Work

 

ÀÌ·¸°Ô importÇϸé ÇÔ¼ö´Â ¾î¶»°Ô »ç¿ëÇØ¾ß ÇÒ±î?  road.align()Àº ¿¡·¯°¡ ¹ß»ýÇÑ´Ù.

>>> road.align()
Traceback (most recent call last):
  File
"", line 1, in
NameError: name
'road' is not defined

 

ÆÐŰÁö¸í±îÁö ½áÁà¾ß ¿¡·¯°¡ ¹ß»ýÇÏÁö ¾Ê´Â´Ù. roaddesignÀ̶ó´Â ÆÐŰÁö¾È¿¡¼­ °¢ ¸ðµâµéÀ» importÇß´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ.

>>> roaddesign.road.align()
Road design align function

 

import as Ű¿öµå

ÆÄÀÌ½ã ÆÐŰÁö¸¦ ºÒ·¯¿Ã ¶§ º°¸íÀ» Á¤ÇØÁÙ ¼ö ÀÖ´Ù. as µÚ¿¡´Ù º°¸íÀ» ½áÁÖ¸é µÈ´Ù. roaddesignÀÇ º°¸íÀ» rd·Î ÇØº¸ÀÚ. roaddesign´ë½Å rd¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. °£°áÇØÁö´Â ÀåÁ¡ÀÌ ÀÖ´Ù. ÆÐŰÁö¸íÀº ÆÐŰÁöÀÇ ±â´ÉÀ» Àß ³ªÅ¸³¾ ¼ö ÀÖ°Ô Áþ´Ùº¸¸é Á» ±æ°Ô µÈ´Ù. ±×·¡¼­ as¸¦ ÀÌ¿ëÇØ º°¸íÀ¸·Î ¾²´Â °æ¿ì°¡ ¸¹´Ù. ¿¹¸¦ µé¾î µ¥ÀÌÅÍ Á¶ÀÛ ¹× ºÐ¼®¿¡ À¯¿ëÇÏ°Ô ¾²ÀÌ´Â pandas¶ó´Â ÆÐŰÁö´Â pd·Î ÁÙ¿©¼­ ¾²°í, Çà·ÄÀ̳ª ¼öÄ¡¿¬»ê ±â´ÉÀ» °¡Áö°í ÀÖ´Â numpy´Â np·Î ÁÙ¿©¼­ ¾´´Ù. ´Ù¸¥ ´Ü¾î·Î ÁÙ¿©¼­ ½áµµ µÇÁö¸¸ º¸ÅëÀº ÀüÅë(?)À» µû¸¥´Ù. 

>>> import roaddesign as rd
>>> rd.road.align()
Road design align function

 

 

scope

ÀÌ ´ë¸ñ¿¡¼­ ¾Ë°í ³Ñ¾î°¡¾ß ÇÒ °ÍÀÌ Çϳª ÀÖ´Ù. ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡µµ ÀÖ´Â °³³äÀε¥ scopeÀ̶ó´Â °ÍÀÌ´Ù. ¿¹¸¦ µé¾î 1Çгâ 1¹Ý¿¡µµ È«±æµ¿ÀÌ ÀÖ°í 1Çгâ2¹Ý¿¡µµ È«±æµ¿ÀÌ ÀÖ´Ù°í ÇÏÀÚ. ±×·¯¸é ±× µÑÀ» ±¸ºÐÇϱâ À§Çؼ­ ¿ì¸®´Â ¡®³Ê´Â 1Çгâ1¹ÝÈ«±æµ¿ÀÌ´Ï?¡¯¶ó°í ¹°¾îº¼ °ÍÀÌ´Ù. ÀÌ°Ô ¹Ù·Î math.sin(1.0)ÀÇ °³³äÀÌ´Ù. ¾Õ¿¡ math°¡ 1Çгâ1¹ÝÀÇ °³³äÀ̰í sinÀÌ È«±æµ¿ÀÇ °³³äÀÌ´Ù. ´©±º°¡°¡ sinÀ̶ó´Â ÇÔ¼ö¸¦ Á¤ÀÇÇß´Ù°í ÇÏÀÚ. ±×·±µ¥ ±×°Ô ¼öÇп¡¼­ ¸»ÇÏ´Â sin°ªÀ» ±¸ÇÏ´Â °ÍÀº ¾Æ´Ï°í ´Ù¸¥ ÀÏÀ» ÇÏ´Â ÇÔ¼ö¿´´Ù. ±×¸®°í ±×°É ´Ù¸¥ »ç¶÷ÀÌ ¾µ ¼ö ÀÖµµ·Ï °øÀ¯Çß´Ù°í ÇÏÀÚ. ¼öÇп¡¼­ ¾²´Â sin°ú ´Ù¸¥ ÀÏÀ» ÇÏ´Â º°µµ·Î Á¤ÀÇµÈ ÇÔ¼öÀÎ sinÀ» ±¸ºÐÇϱâ À§Çؼ­ °¢°¢ sinÀ» Á¤ÀÇÇÑ ¸ðµâÀ̳ª ÆÐŰÁöÀÇ À̸§À» ¾Õ¿¡ ½áÁØ´Ù.

 

¸ðµâ°ú ÆÐŰÁö´Â ÆÄÀ̽ãÀÇ °­·ÂÇÑ ±â´ÉÀ» ¹ÞÃÄÁÖ´Â Áß¿äÇÑ ±â´ÉÀÌ´Ù. ´ÙÀ½ ½Ã°£¿¡´Â °ø°³µÈ ¸ðµâÀ̳ª ÆÐŰÁö¸¦ ³» ÄÄÇ»ÅÍ¿¡ ¼³Ä¡ÇÏ°í »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸°Ú´Ù.

 

 

 

 



  ÃßõÇÏ±â   ¸ñ·Ïº¸±â

Copyright 1999-2023 Zeroboard / skin by zero
±¸Á¶¼³°èÀÇ ¹Ì·¡¸¦ ÁغñÇÏ´Â ¸ðÀÓ [±¸Á¶¼³°è¹Ì·¡Æ÷·³]