๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿฆ• ๊ณต๋ฃก์ด ๋˜์ž!

python_re_study...4 ๋ณธ๋ฌธ

Development/Python

python_re_study...4

Kirok Kim 2021. 12. 18. 17:13
  •  __init__.py์˜ ์šฉ๋„
  • __init__.py ํŒŒ์ผ์€ ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ํŒจํ‚ค์ง€์˜ ์ผ๋ถ€์ž„์„ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ๋งŒ์•ฝ game, sound, graphic ๋“ฑ ํŒจํ‚ค์ง€์— ํฌํ•จ๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— __init__.py ํŒŒ์ผ์ด ์—†๋‹ค๋ฉด ํŒจํ‚ค์ง€๋กœ ์ธ์‹๋˜์ง€ ์•Š๋Š”๋‹ค.
  • ์ด๋ ‡๊ฒŒ ํŠน์ • ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ชจ๋“ˆ์„ ***** ์‚ฌ์šฉํ•˜์—ฌ importํ•  ๋•Œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ __init__.py ํŒŒ์ผ์— __all__ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๊ณ  importํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“ˆ์„ ์ •์˜ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
# C:/doit/game/sound/__init__.py
__all__ = ['echo']
  • [ ] relative ํŒจํ‚ค์ง€
from ..sound.echo import echo_test
=from game.sound.echo import echo_test
def render_test():
    print("render")
    echo_test()
  • ์˜ˆ์™ธ์ฒ˜๋ฆฌ
try:
...
except:
...
  • try:
    ...
    except ๋ฐœ์ƒ ์˜ค๋ฅ˜:
    ...
    
    try:
    ...
    except ๋ฐœ์ƒ ์˜ค๋ฅ˜ as ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ๋ณ€์ˆ˜:
    ...
    
    try:
    	4/0
    except ZeroDivisionError as e:
    	print(e)
    
    f=open('foo.txt','w')
    try:
    	~
    finally:
    	f.close()
    
    try:
    	...
    except ๋ฐœ์ƒ ์˜ค๋ฅ˜ 1 :
    	...
    except ๋ฐœ์ƒ ์˜ค๋ฅ˜ 2 :
    	...
    
    try:
        a = [1,2]
        print(a[3])
        4/0
    except (ZeroDivisionError, IndexError) as e:
        print(e)
    
    • [ ] try๋ฌธ์— else์ ˆ ์‚ฌ์šฉํ•˜๊ธฐ
    try:
        ...
    except [๋ฐœ์ƒ ์˜ค๋ฅ˜[as ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ๋ณ€์ˆ˜]]:
        ...
    else:  # ์˜ค๋ฅ˜๊ฐ€ ์—†์„ ๊ฒฝ์šฐ์—๋งŒ ์ˆ˜ํ–‰๋œ๋‹ค.
        ...
    
    try:
        age=int(input('๋‚˜์ด๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”: '))
    except:
        print('์ž…๋ ฅ์ด ์ •ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.')
    else:
        if age <= 18:
            print('๋ฏธ์„ฑ๋…„์ž๋Š” ์ถœ์ž…๊ธˆ์ง€์ž…๋‹ˆ๋‹ค.')
        else:
            print('ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.')
    
    • [ ] ๋ฐ˜๋“œ์‹œ ๊ตฌํ˜„ํ•˜๋„๋ก ํ•˜๊ฒŒ๋” ํ•˜๋ ค๋ฉด
    class Bird:
        def fly(self):
            raise NotImplementedError
    
    • ์œ„ ์ฒ˜๋Ÿผ raise๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
    • [ ] ์˜ˆ์™ธ ๋งŒ๋“ค๊ธฐ
    • class MyError(Exception):
      	pass
      #ํŒŒ์ด์ฌ ๋‚ด์žฅ ํด๋ž˜์Šค์ธ Exception๋ฅผ ์ƒ์†ํ•˜์—ฌ ๋งŒ๋“ฆ!
      
      def say_nick(nick):
          if nick == '๋ฐ”๋ณด':
              raise MyError()
          print(nick)
      
      #๋ฐ”๋ณด์ผ ๊ฒฝ์šฐ error๋ฐœ์ƒ
      #์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•  ๊ฒฝ์šฐ
      try:
      	say_nick("์ฒœ์‚ฌ")
      	say_nick("๋ฐ”๋ณด")
      except MyError:
      	print("ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ๋ณ„๋ช…์ž…๋‹ˆ๋‹ค.")
      
      >>>
      ์ฒœ์‚ฌ
      ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ๋ณ„๋ช…์ž…๋‹ˆ๋‹ค.
      >>>
      
      try:
      	say_nick("์ฒœ์‚ฌ")
      	say_nick("๋ฐ”๋ณด")
      except MyError as e:
      	print(e)
      >>> #๊ฒฐ๊ณผ๋Š” ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š”๋‹ค
      #์ถœ๋ ฅ์„ ํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ์—๋Š” __str__๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค.
      class MyError(Exception):
          def __str__(self):
              return "ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ๋ณ„๋ช…์ž…๋‹ˆ๋‹ค."
      

์ฐธ๊ณ  : https://wikidocs.net/30

 

05-4 ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๋‹ค ๋ณด๋ฉด ์ˆ˜์—†์ด ๋งŽ์€ ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋œ๋‹ค. ๋ฌผ๋ก  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์ž˜๋ชป ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•œ ํŒŒ์ด์ฌ์˜ ๋ฐฐ๋ ค์ด๋‹ค. ํ•˜์ง€๋งŒ ๋•Œ๋•Œ๋กœ ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜ ...

wikidocs.net

 

๋ฐ˜์‘ํ˜•

'Development > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

python_re_study...6  (0) 2021.12.19
python_re_study...5  (0) 2021.12.19
python_re_study...3  (0) 2021.12.17
python_re_study...2  (0) 2021.12.15
python_re_study...1  (0) 2021.12.15
Comments