Python

Python - ํด๋ž˜์Šค (Class) 3

Mainyoung 2022. 1. 10. 00:54

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

์ƒ์„ฑ์ž(Constructor)๋ž€ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๊ฐ์ฒด์— ์ดˆ๊นƒ๊ฐ’์„ ์„ค์ •ํ•ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ ์ƒ์„ฑ์ž๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๊ฒƒ์ด ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.

calss Calculator:
	def __init__(self,first,second):
    	self.first = first
        self.second = second
        
    def add(self):
    	result = self.first + self.second
        return result

์œ„ ์ฝ”๋“œ๋Š” ์ƒ์„ฑ์ž __init__์„ ํ†ตํ•ด first์™€ second๋ฅผ ์ž๋™์œผ๋กœ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์œ„ Calculator๋ฅผ ํ˜ธ์ถœํ• ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•œ๋‹ค.

a = Calcualtor(4,2)

#์ž˜๋ชป๋œ ๋ฐฉ๋ฒ•
a = Calculator()

 ์œ„ ์ฝ”๋“œ์™€ ๊ฐ™์ด Calculator๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด์„œ ์ƒ์„ฑ์ž __init__์— ๋“ค์–ด๊ฐˆ first์™€ second๋ฅผ ์ž…๋ ฅํ•ด์ค˜์•ผ ํ•œ๋‹ค. ์•„๋ž˜ ์ž˜๋ชป๋œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ˜ธ์ถœํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์•„๋ž˜ ์ž˜๋ชป๋œ ๋ฐฉ๋ฒ•์œผ๋กœ ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์€ ์ƒ์„ฑ์ž __init__์ด ์—†๋‹ค๋ฉด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

calss Calculator:
	def setdata(self,first,second):
    	self.first = first
        self.second = second
        
    def add(self):
    	result = self.first + self.second
        return result

์ด์™€๊ฐ™์ด ๋ง์ด๋‹ค.

 


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

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

์•„๊นŒ Calculatorํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ a์˜ b์ œ๊ณฑ์„ ๊ณ„์‚ฐํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.

class powercalculator(Calculator):
	def pow(self):
    	result = self.first**self.second
        return result

ํด๋ž˜์Šค powercalculator๋Š” ๊ธฐ์กด ํด๋ž˜์Šค Calculator์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ(add์™€ ๊ฐ™์€)์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ์ฒด๋ณ€์ˆ˜๊นŒ์ง€ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 


๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ

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

 


ํด๋ž˜์Šค ๋ณ€์ˆ˜

ํด๋ž˜์Šค ๋ณ€์ˆ˜๋Š” ๊ฐ์ฒด ๋ณ€์ˆ˜์™€ ๋‹ค๋ฅด๊ฒŒ ํด๋ž˜์Šค๋กœ ๋งŒ๋“  ๋ชจ๋“  ๊ฐ์ฒด์— ๊ณต์œ ๋œ๋‹ค.

class Family():
	lastname = "๊น€"
    
a = Family()
b = Family()

print(a.lastname)
print(b.lastname)

 

์œ„์™€๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

๋‘๊ฐœ์˜ ์ถœ๋ ฅ ๋ชจ๋‘ ๊น€์„ ์ถœ๋ ฅํ•œ๋‹ค.

Family.lastname = "๋ฐ•"

print(a.lastname)
print(b.lastname)

์ดํ›„ ์œ„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋‘ ๊ฐœ์˜ ์ถœ๋ ฅ ๋ชจ๋‘ "๋ฐ•"์„ ์ถœ๋ ฅํ•˜๊ฒŒ ๋œ๋‹ค.

 

์ด ๊ธ€์€ "์ ํ”„ ํˆฌ ํŒŒ์ด์ฌ"์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด
https://wikidocs.net/28
 

05-1 ํด๋ž˜์Šค

์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ํด๋ž˜์Šค(class)๋Š” ๋„˜๊ธฐ ํž˜๋“  ์žฅ๋ฒฝ๊ณผ๋„ ๊ฐ™์€ ์กด์žฌ์ด๋‹ค. ๋…์ž๋“ค ์ค‘์—๋„ ํด๋ž˜์Šค๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์ด๋“ค๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋„๋Œ€์ฒด ํด๋ž˜์Šค๊ฐ€ ๋ฌด์—‡์ธ์ง€ ...

wikidocs.net

 

728x90