๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’๊ณต๋ถ€/Python

[Python] ํด๋ž˜์Šค์˜ ์ƒ์„ฑ๊ณผ ์ƒ์†

by rindev 2020. 11. 16.

์ด ์˜ˆ์‹œ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์ •๋ฆฌ๋ฅผ ํ•  ๊ฒƒ์ด๋‹ค.

class FourCal:
  # def setData(self, input1, input2):
  #   self.num1 = input1
  #   self.num2 = input2
  #   print(self.num1, self.num2)
  def __init__(self, input1, input2):
    self.num1 = input1
    self.num2 = input2
    print(self.num1, self.num2)

  def add(self):
    print('ํ•ฉ :', self.num1+self.num2)
  def sub(self):
    print('์ฐจ :', self.num1-self.num2)
  def prod(self):
    print('๊ณฑ :', self.num1*self.num2)
  def div(self):
    print('๋‚˜๋ˆ„๊ธฐ :', self.num1/self.num2)

# a = FourCal()
# a.setData(10,2)
a = FourCal(10, 2)
a.add()
a.sub()
a.prod()
a.div()

# b = FourCal()
# b.setData(12,4)
b = FourCal(12, 4)
b.add()
b.sub()
b.prod()
b.div()

class MoreFourCal(FourCal): #์ƒ์†
  def pow(self):
    print('์ œ๊ณฑ :', self.num1 ** self.num2)

c = MoreFourCal(3, 2)
c.add()
c.sub()
c.prod()
c.div()
c.pow()

class safeFourCal(FourCal):
  def div(self): #์˜ค๋ฒ„๋ผ์ด๋”ฉ
    if self.num2 == 0:
      print('0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค...', 0)
    else:
      print('๋‚˜๋ˆ„๊ธฐ :', self.num1/self.num2)

d = safeFourCal(4, 0)
d.add()
d.sub()
d.prod()
d.div()

 

 

๐Ÿ’ํด๋ž˜์Šค์˜ ์ƒ์„ฑ ๋ฐ ์ƒ์„ฑ์ž

class FourCal:
  # def setData(self, input1, input2):
  #   self.num1 = input1
  #   self.num2 = input2
  #   print(self.num1, self.num2)
  def __init__(self, input1, input2):
    self.num1 = input1
    self.num2 = input2
    print(self.num1, self.num2)

  def add(self):
    print('ํ•ฉ :', self.num1+self.num2)
  def sub(self):
    print('์ฐจ :', self.num1-self.num2)
  def prod(self):
    print('๊ณฑ :', self.num1*self.num2)
  def div(self):
    print('๋‚˜๋ˆ„๊ธฐ :', self.num1/self.num2)

FourCal ์ด๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

๊ทผ๋ฐ ๋งจ ์œ„์— ์ฃผ์„ ์ฒ˜๋ฆฌ๋œ setData๋ฅผ ๋ณด๋ฉด, ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ self, input1, input2๋ฅผ ๋ฐ›๋Š”๋‹ค.

 

 

์ถœ์ฒ˜ : https://wikidocs.net/28

 

self ๋Œ€์‹ ์— ๋„ฃ๊ณ  ์‹ถ์€ ์ด๋ฆ„์„ ์•„๋ฌด๊ฑฐ๋‚˜ ๋„ฃ์–ด๋„ ์ƒ๊ด€์€ ์—†๋‹ค๊ณ  ํ•œ๋‹ค! (ํ•˜์ง€๋งŒ ๊ด€๋ก€์ ์œผ๋กœ self๋ฅผ ์“ด๋‹ค๊ณ  ํ•จ)

 

๊ทธ๋ž˜์„œ setData๋ฉ”์„œ๋“œ์—์„œ ๋“ค์–ด์˜จ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ์ฒด๋ณ€์ˆ˜์™€ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์ผ์„ ํ•˜๋Š”๋ฐ, 

์ด๋Š” add, sub, prod, div๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ๊ผญ ๋จผ์ € ์—ฐ๊ฒฐ์„ ํ•ด ์ฃผ๊ณ ๋‚˜์„œ ๊ณ„์‚ฐ์„ ํ•ด์•ผํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ์—ˆ๋‹ค.

 

์ด๊ฒƒ์„ ํ˜ธ์ถœํ•˜์ง€ ์•Š์•„๋„ ์—ฐ๊ฒฐ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ __init__ ์ด๋‹ค. (__init__ = ์ƒ์„ฑ์ž)

์ด๊ฒƒ์ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ผ์€ setData์™€ ๋™์ผํ•˜์ง€๋งŒ, ์ƒ์„ฑ์ž์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ์‹œ์ ์— ์ž๋™์œผ๋กœ ํ˜ธ์ถœ์ด ๋œ๋‹ค!

 

 

๐Ÿ’ํด๋ž˜์Šค์˜ ์ƒ์„ฑ ๋ฐ ์ƒ์„ฑ์ž

์ƒ์†์„ ํ•˜๋ฉด ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๋ฌผ๋ ค๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

class MoreFourCal(FourCal): #์ƒ์†
  def pow(self):
    print('์ œ๊ณฑ :', self.num1 ** self.num2)

c = MoreFourCal(3, 2)
c.add()
c.sub()
c.prod()
c.div()
c.pow()

MoreFourCal ์€ FourCal ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•œ๋‹ค.

๊ทธ๋ž˜์„œ add, sub, prod, div๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ƒ์†ํ•œ ํ›„, pow ๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๊ฒƒ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

 

๐Ÿ’๋ฉ”์„œ๋“œ์˜ ์˜ค๋ฒ„๋ผ์ด๋”ฉ

์•„์ง๋„ ํ—ท๊ฐˆ๋ฆฌ๋Š” ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด ๋˜ ๋‚˜์™”๋‹ค๐Ÿ˜ญ

class safeFourCal(FourCal):
  def div(self): #์˜ค๋ฒ„๋ผ์ด๋”ฉ
    if self.num2 == 0:
      print('0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค...', 0)
    else:
      print('๋‚˜๋ˆ„๊ธฐ :', self.num1/self.num2)

d = safeFourCal(4, 0)
d.add()
d.sub()
d.prod()
d.div()

 

์œ„์— ๋ณด๋ฉด ์ด๋ฏธ FourCal ์•ˆ์— div๋ผ๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋Š”๋ฐ, SafeFourCal (FourCal์„ ์ƒ์†) ์—์„œ ๋˜‘๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ div๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ƒ์†ํ•œ ํด๋ž˜์Šค์— ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋˜‘๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์˜ค๋ฒ„๋ผ์ด๋”ฉ! ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•˜๋ฉด ๋ถ€๋ชจํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ ๋Œ€์‹ , ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•œ ๋ฉ”์„œ๋“œ๊ฐ€ ๋ถˆ๋ฆฐ๋‹ค.

 

 

๋Œ“๊ธ€