Potato
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์žก๋‹ˆ๋‹ค?๐Ÿฅ” ^___^ ๐Ÿ˜บ github ๋ฐ”๋กœ๊ฐ€๊ธฐ ๐Ÿ‘‰๐Ÿป

potato's Dev Note/Python

[ํŒŒ์ด์ฌ] ํด๋ž˜์Šค์™€ ๊ฐ์ฒด / ์ƒ์„ฑ์ž(__init__) / ํด๋ž˜์Šค์˜ ์ƒ์†, ์˜ค๋ฒ„๋ผ์ด๋”ฉ

๊ฐ์ž ๐Ÿฅ” 2021. 7. 21. 08:50
๋ฐ˜์‘ํ˜•

1. ํด๋ž˜์Šค์™€ ๊ฐ์ฒด

  • ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด์˜ ๊ตฌ์กฐ์™€ ํ–‰๋™์„ ์ •์˜ํ•œ๋‹ค
  • ๊ฐ์ฒด์˜ ํด๋ž˜์Šค๋Š” ์ดˆ๊ธฐํ™”๋ฅผ ํ†ตํ•ด ์ œ์–ดํ•œ๋‹ค. (__init__)
  • ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์žˆ๋‹ค๋Š” ์žฅ์  ์กด์žฌ

1.1 ํŒŒ์ด์ฌ์—์„œ ๋ณด๋Š” ํด๋ž˜์Šค์™€ ๊ฐ์ฒด์˜ ํ˜•ํƒœ

class Cookie:
    pass
  • ์ด ํด๋ž˜์Šค๋Š” ์•„๋ฌด ๊ธฐ๋Šฅ์„ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์€ ๊ป๋ฐ๊ธฐ๋ฟ์ธ ํด๋ž˜์Šค
a = Cookie()
b = Cookie()
  •  Cookieํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ์œ„์™€ ๊ฐ™๋‹ค.
  • Cookie()์˜ ๊ฒฐ๊ด๊ฐ’์„ ๋ฐ›๋Š” a์™€ b๊ฐ€ ๋ฐ”๋กœ ๊ฐ์ฒด๊ฐ€ ๋œ๋‹ค.

 

1.2 ์‚ฌ์น™์—ฐ์‚ฐ ํด๋ž˜์Šค ๋งŒ๋“ค์–ด๋ณด๊ธฐ

ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์ „์—๋Š”, ์–ด๋–ค ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค์ง€ ์ƒ๊ฐ์„ ์šฐ์„ ์ ์œผ๋กœ ํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค. 

  • a = FourCal()
  • a.setdata(4,2)
  • print(a.add()) --> ๊ฒฐ๊ณผ: 6
  • print(a.mul()) --> ๊ฒฐ๊ณผ: 8

์šฐ๋ฆฌ๋Š” ์ด๋ ‡๊ฒŒ a๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ €๋ ‡๊ฒŒ ๋„ฃ์„ ๊ฒƒ์ด๋ฉฐ, ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋Š” ์œ„์™€ ๊ฐ™์ด ์ถœ๋ ฅ๋˜๊ฒŒ ๋งŒ๋“ค๊ณ ์ž ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋จผ์ € ์–ด๋–ค ํ˜•ํƒœ๋กœ ํด๋ž˜์Šค๋ฅผ ๊ตฌ์ถ•ํ•ด์•ผํ•˜๋Š”์ง€ ๊ตฌ์กฐ ๋จผ์ € ๋จธ๋ฆฟ์†์— ๋– ์˜ฌ๋ฆฌ๊ณ  ํด๋ž˜์Šค๋ฅผ ํ˜•์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.

1.2.1 ํด๋ž˜์Šค ๊ตฌ์กฐ ๋งŒ๋“ค๊ธฐ

a = FourCal() ์ด๋ผ๊ณ  a๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ ์ž ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํด๋ž˜์Šค๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ •์˜ํ•œ๋‹ค.

class FourCal:
	pass

์—ฌ๊ธฐ์„œ ์ฐธ๊ณ !! ๊ฐ์ฒด์™€ ์ธ์Šคํ„ด์Šค์˜ ์ฐจ์ด ์•Œ์•„๋ณด๊ธฐ

  • ์ธ์Šคํ„ด์Šค : ํด๋ž˜์Šค๋กœ ๋งŒ๋“  ๊ฐ์ฒด
  • ์ฆ‰, a = FourCal()์ผ ๋•Œ
    • a๋Š” ๊ฐ์ฒด์ด์ž, FourCal() ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค.

1.2.2 ๊ฐ์ฒด์— ์ˆซ์ž ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค๊ธฐ

a.setdata(4,2) ํ•ด๋‹น ๊ณผ์ •์„ ๋งŒ๋“ค๊ณ ์ž ํ•œ๋‹ค. a๋ผ๋Š” ๊ฐ์ฒด์— (4,2) ๋ผ๊ณ  ์ˆซ์ž๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค๊ณ ์ž ํ•œ๋‹ค.

class FourCal:
     def setdata(self, first, second):
         self.first = first
         self.second = second

setdata ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํด๋ž˜์Šค ์•ˆ์— ๊ตฌํ˜„๋œ ํ•จ์ˆ˜๋ฅผ '๋ฉ”์„œ๋“œ'๋ผ๊ณ  ๋งํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ self, first, second ์„ธ๊ฐœ๋ฅผ ๋ฐ›๋Š”๋ฐ, self๋Š” ๋ฌด์—‡์ผ๊นŒ? ๊ทธ๋ฆฌ๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ 3๊ฐœ์ด๋ฉด, 3๊ฐœ์˜ ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” setdata(4,3) ์ด๋ ‡๊ฒŒ ๋‘๊ฐœ์˜ ์ˆ˜๋งŒ ์ „๋‹ฌํ•ด ์ฃผ์—ˆ๋‹ค.

  • self
    • ํด๋ž˜์Šค์—์„œ self๋Š” ๊ฐ์ฒด ์ž์‹ ์„ ๋ถˆ๋Ÿฌ์˜ค๋„๋ก ์„ค์ •๋˜์–ด์žˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ ํ•ด๋‹น a.setdata(4,2)๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด, self์—๋Š” ๊ฐ์ฒด ์ž๊ธฐ์ž์‹ ์ธ 'a'๊ฐ€ ์ž๋™์œผ๋กœ ์ „๋‹ฌ๋œ๋‹ค.

์ฐธ๊ณ ) ์œ„ํ‚ค๋…์Šค ์ ํ”„ ํˆฌ ํŒŒ์ด์ฌ

 

1.2.3 ๋”ํ•˜๊ธฐ ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ

์ด์ œ a.add()๋ฅผ ํ–ˆ์„ ๋•Œ ์ž…๋ ฅ ๋๋˜ ๋‘ ์ˆ˜๊ฐ€ ๋”ํ•ด์ง€๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํด๋ž˜์Šค์— ์ถ”๊ฐ€ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. a๋Š” ํ˜„์žฌ FourCal์˜ ์ธ์Šคํ„ด์Šค์ด๋ฉฐ, first ๋ณ€์ˆ˜์— 4๊ฐ€, second ๋ณ€์ˆ˜์— 2๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ์ƒํƒœ์ด๋‹ค.

class FourCal:
     def setdata(self, first, second):
         self.first = first
         self.second = second
     def add(self):
         result = self.first + self.second
         return result

add ๋ฉ”์„œ๋“œ๋ฅผ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€ํ–ˆ๋‹ค. a.setdata(4,2)๋กœ first ์™€ second์˜ ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™” ์‹œ์ผœ์ค€ ํ›„, a.add()๋งค์„œ๋“œ๋ฅผ ์ง„ํ–‰์‹œ์ผœ์ฃผ๋ฉด ์ž๋™์œผ๋กœ self ๋ถ€๋ถ„์— a ๋ผ๋Š” ๊ฐ์ฒด๊ฐ€ ๋„˜์–ด๊ฐ€๊ฒŒ ๋˜๋ฉด์„œ add๊ธฐ๋Šฅ์—์„œ first์™€ second์— ์•Œ๋งž์€ ๋ณ€์ˆ˜๊ฐ€ ์ง€์ •๋˜๊ณ  ๋ง์…ˆ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

 

1.2.4 ๋‚˜๋จธ์ง€ ์‚ฌ์น™์—ฐ์‚ฐ ๋ฉ”์„œ๋“œ ์ž‘์„ฑํ•˜๊ธฐ

 class FourCal:
     def setdata(self, first, second):
         self.first = first
         self.second = second
     def add(self):
         result = self.first + self.second
         return result
     def mul(self):
         result = self.first * self.second
         return result
     def sub(self):
         result = self.first - self.second
         return result
     def div(self):
         result = self.first / self.second
         return result

์ด๋ ‡๊ฒŒ ํ•˜๊ฒŒ ๋˜๋ฉด ์‚ฌ์น™์—ฐ์‚ฐ ํด๋ž˜์Šค ForCal ์„ ์™„์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.

 

2. ์ƒ์„ฑ์ž (Constructor)

์šฐ๋ฆฌ๋Š” setdata๋ผ๋Š” ๋งค์„œ๋“œ๋ฅผ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์ƒˆ๋กญ๊ฒŒ ๋งŒ๋“ค์–ด ์ฃผ๋ฉด์„œ ์ˆ˜๋ฅผ ์ง€์ •ํ•ด ์ฃผ์—ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋‹ค ๋ณด๋ฉด, FourCal ํด๋ž˜์Šค๋Š” setdata ๋ฉ”์„œ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

a = FourCal()
a.add()

์ด๋ ‡๊ฒŒ ์ง„ํ–‰ํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ, ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

๊ผญ setdata ๋ฉ”์„œ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ๋งŒ first ์™€ second ๋ณ€์ˆ˜๊ฐ€ ์ƒ์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

์ƒ์„ฑ์ž๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ?

์ด๋ ‡๊ฒŒ ๊ฐ์ฒด์— ์ดˆ๊นƒ๊ฐ’์„ ์„ค์ •ํ•ด์•ผํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ์—๋Š” setdata์ฒ˜๋Ÿผ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ดˆ๊นƒ๊ฐ’์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” '์ƒ์„ฑ์ž'๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ƒ์„ฑ์ž๋ž€, ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

์ƒ์„ฑ์ž ๋ฉ”์„œ๋“œ์˜ ์ด๋ฆ„์€ __init__ ์ด๋‹ค.  ์‚ฌ์น™์—ฐ์‚ฐ FourCalํด๋ž˜์Šค์— ์ƒ์„ฑ์ž๋ฅผ ์ถ”๊ฐ€ํ•ด๋ณด์ž!

 class FourCal:
      def __init__(self, first, second):
          self.first = first
          self.second = second
    
     def setdata(self, first, second):
         self.first = first
         self.second = second
     def add(self):
         result = self.first + self.second
         return result
     def mul(self):
         result = self.first * self.second
         return result
     def sub(self):
         result = self.first - self.second
         return result
     def div(self):
         result = self.first / self.second
         return result
  • __init__ ๋ฉ”์„œ๋“œ๋Š” setdata ๋ฉ”์„œ๋“œ์™€ ์ฐจ์ด๊ฐ€ ์—†์–ด ๋ณด์ด์ง€๋งŒ, __init__ ๋ฉ”์„œ๋“œ๋Š” ๋”ฐ๋กœ ํ˜ธ์ถœํ•ด์ฃผ์ง€ ์•Š์•„๋„ ์ƒ์„ฑ์ž๋กœ ์ธ์‹๋˜์–ด ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ์‹œ์ ์— ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋œ๋‹ค๋Š” ์ ์—์„œ ์ฐจ์ด๊ฐ€ ์กด์žฌํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ __init__์ƒ์„ฑ์ž๊ฐ€ ์ž‘์„ฑ์ด ๋˜์—ˆ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ž๋™์œผ๋กœ first/second ๋ณ€์ˆ˜๋กœ ์ˆซ์ž๊ฐ€ ์ „๋‹ฌ๋œ๋‹ค.

a = FourCal(4,2)
  • ํ•˜์ง€๋งŒ ์ด์ „์ฒ˜๋Ÿผ a = FourCal() ๋ผ๊ณ ๋งŒ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด, first์™€ second์— ๋“ค์–ด๊ฐˆ ๋ณ€์ˆ˜๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ๋™์‹œ์— __init__ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋จ์„ ๊ธฐ์–ตํ•˜๋ฉฐ __init__ ๋ฉ”์„œ๋“œ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋งž๋Š” ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•ด์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๋„๋ก ํ•˜์ž.

 

3. ํด๋ž˜์Šค์˜ ์ƒ์†

์ƒ์†์ด๋ž€, ์–ด๋–ค ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ์„ ๋ฌผ๋ ค๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.  ๋ณดํ†ต ์ƒ์†์€ ๊ธฐ์กด ํด๋ž˜์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ๊ธฐ๋Šฅ์„ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ์‚ฌ์šฉํ•œ๋‹ค.  ์•ž์„œ ๋งŒ๋“  FourCal ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜๋Š” MoreFourCal ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž. ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค

class MoreFourCal(FourCal):
	pass
  • class ํด๋ž˜์Šค์ด๋ฆ„ (์ƒ์†ํ•  ํด๋ž˜์Šค์ด๋ฆ„) ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
  • MoreFourCal์€ FourCal ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•˜์œผ๋ฏ€๋กœ, FourCal ๋‚ด๋ถ€์— ์žˆ๋Š” ๋ชจ๋“  add, mul, sub, div ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜์žˆ๋‹ค.
a = MoreFourCal(4,2)
a.add()
##๊ฒฐ๊ด๊ฐ’ =>  6

 

3.1 a์˜ b์ œ๊ณฑ์„ ๊ณ„์‚ฐํ•˜๋Š” MoreFourCal ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด์ž.

 class MoreFourCal(FourCal):
     def pow(self):
         result = self.first ** self.second
         return result
a = MoreFourCal(4,2)
a.pow()

##๊ฒฐ๊ด๊ฐ’ ==> 16

FourCal ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•˜์œผ๋ฏ€๋กœ ๋”ฐ๋กœ ์ƒ์„ฑ์ž๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค. FourCal ํด๋ž˜์Šค ๋‚ด๋ถ€์—์žˆ๋Š” ์ƒ์„ฑ์ž๋ฅผ ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ FourCal ๋‚ด๋ถ€์— ์žˆ๋Š” ๊ธฐ๋Šฅ์€ ๋ฌผ๋ก  MoreFourCal ๋‚ด๋ถ€์— ์žˆ๋Š” ๋ฉ”์„œ๋“œ๊นŒ์ง€ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ์˜ ํด๋ž˜์Šค๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

4. ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ (overriding) 

 a = FourCal(4, 0)
 a.div()

์œ„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๊ทธ ์ด์œ ๋Š” 4๋ฅผ 0์œผ๋กœ ๋‚˜๋ˆ„๋ ค๊ณ  ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด์ฒ˜๋Ÿผ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ณธ ํด๋ž˜์Šค๋ฅผ ๊ฑด๋“ค์ด์ง€ ์•Š๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ด ์žˆ์„๊นŒ?

๋ฐ”๋กœ ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ํ™œ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์€ ๋ง๊ทธ๋Œ€๋กœ ๋ฎ์–ด์“ฐ๊ธฐ๋ผ๋Š” ๊ธฐ๋Šฅ์ด๋ผ๋Š” ๋œป์ด๋ฉฐ, ์ƒ์†์„ ํ™œ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 class SafeFourCal(FourCal):  # FourCal์ด ๋ถ€๋ชจํด๋ž˜์Šค ์ด๋‹ค.
     def div(self):
         if self.second == 0:  # ๋‚˜๋ˆ„๋Š” ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ 0์„ ๋ฆฌํ„ดํ•˜๋„๋ก ์ˆ˜์ •
             return 0
         else:
             return self.first / self.second

SafeFourCal ์€ FourCal์„ ๋ถ€๋ชจํด๋ž˜์Šค๋กœ ๊ฐ–๊ณ  ๋ถ€๋ชจํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ƒ์†๋ฐ›๋Š”๋‹ค. ํ•˜์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ํ›‘์–ด๋ณด๋ฉด FourCal ๋‚ด๋ถ€์— ์žˆ๋Š” div ๋ฉ”์„œ๋“œ์™€ ๋™์ผํ•œ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์€๊ฐ€? ์ด๋Ÿฐ๊ฒƒ์„ ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด๋ผ๊ณ  ํ•œ๋‹ค. (๋ถ€๋ชจ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์žˆ๋Š” ๋ฉ”์„œ๋“œ์™€ ๋™์ผํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ–๋Š” ์ž์‹ ํด๋ž˜์Šค)

์ด๋Ÿด ๋•Œ์—๋Š”, ๋ถ€๋ชจ ํด๋ž˜์Šค์— ์žˆ๋Š” div ๋ฉ”์„œ๋“œ๊ฐ€ ์•„๋‹Œ ์ž์‹ํด๋ž˜์Šค์— ์žˆ๋Š” div ๋ฉ”์„œ๋“œ๊ฐ€ ์ž๋™์œผ๋กœ ์‹คํ–‰๋œ๋‹ค.

 a = SafeFourCal(4, 0)
 a.div()
 
 ## ๊ฒฐ๊ด๊ฐ’ => 0

 

 

์ฐธ๊ณ ) https://wikidocs.net/28

 

์œ„ํ‚ค๋…์Šค

์˜จ๋ผ์ธ ์ฑ…์„ ์ œ์ž‘ ๊ณต์œ ํ•˜๋Š” ํ”Œ๋žซํผ ์„œ๋น„์Šค

wikidocs.net

์ฐธ๊ณ ) https://wikidocs.net/16071

 

์œ„ํ‚ค๋…์Šค

์˜จ๋ผ์ธ ์ฑ…์„ ์ œ์ž‘ ๊ณต์œ ํ•˜๋Š” ํ”Œ๋žซํผ ์„œ๋น„์Šค

wikidocs.net

์ฐธ๊ณ ) https://zzsza.github.io/development/2020/07/05/python-class/

 

ํŒŒ์ด์ฌ ์ค‘๊ธ‰ - Python Class ์˜ˆ์ œ ๋ฐ ์‚ฌ์šฉ๋ฒ•

Python Class ์˜ˆ์ œ ๋ฐ Python Class ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค ํ‚ค์›Œ๋“œ : Python Class, Python Class Example, Python Class Use Case ๋ชฉ์ฐจ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ ˆ์ฐจ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ˆ์‹œ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

zzsza.github.io

๋ฐ˜์‘ํ˜•