๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Python

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

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

์•ž์„œ ํด๋ž˜์Šค๋ฅผ ๋ถ•์–ด๋นต์˜ ํ‹€์— ๋น„์œ ํ–ˆ๋‹ค. ์ด์ œ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์™œ ๋ถ•์–ด๋นต ํ‹€์ด ๊ฐ€์žฅ ์•Œ๋งž์€ ์„ค๋ช…์ด์—ˆ๋Š”์ง€ ์ดํ•ด๊ฐ€ ๊ฐˆ ๊ฒƒ์ด๋‹ค. 

  • ๋ถ•์–ด๋นต ํ‹€ -> ํด๋ž˜์Šค (Class)
  • ๋งŒ๋“ค์–ด์ง„ ๋ถ•์–ด๋นต -> ๊ฐ์ฒด (Object)

ํด๋ž˜์Šค(Class)๋Š” ๋ถ•์–ด๋นต์„ ๊ณ„์† ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํ‹€์ด๊ณ , ๊ฐ์ฒด(Object)๋Š” ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ๋งŒ๋“  ๋ถ•์–ด๋นต๊ณผ ๊ฐ™๋‹ค. ๊ฐ๊ฐ์˜ ๊ฐ์ฒด(๋ถ•์–ด๋นต)๋“ค์€ ๊ณ ์œ ํ•œ ์„ฑ๊ฒฉ์„ ๊ฐ€์ง€๋ฉฐ, ์„œ๋กœ ์ „ํ˜€ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

 

 

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

์•ž์„œ ๊ณ„์‚ฐ๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ์šฐ๋ฆฌ๋Š” ๊ฐ’์„ ๊ทธ๋•Œ ๊ทธ๋•Œ ์ž…๋ ฅ๋ฐ›์•˜๋‹ค. ํ•˜์ง€๋งŒ ์—ฐ์‚ฐํ•  ์ˆ˜๋ฅผ ๋ฏธ๋ฆฌ ๋ฐ›๊ฒŒ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

class calculator: #๊ณ„์‚ฐ๊ธฐ ํด๋ž˜์Šค ์ƒ์„ฑ
	def setdata(self, first,second): # first์™€ second์— ์—ฐ์‚ฐํ•  ์ˆ˜ ์ €์žฅ
		self.first = first #๊ฐ์ฒด์˜ first๋ณ€์ˆ˜์— ์ž…๋ ฅ๋ฐ›์€ first๊ฐ’ ์ €์žฅ
		self.second = second #๊ฐ์ฒด์˜ second๋ณ€์ˆ˜์— ์ž…๋ ฅ๋ฐ›์€ second๊ฐ’ ์ €์žฅ

setdata ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ๋ณด์ž. Class ๋‚ด์—์„œ ๊ตฌํ˜„๋œ ํ•จ์ˆ˜๋ฅผ ๋ฉ”์„œ๋“œ(Method) ๋ผ๊ณ  ํ•œ๋‹ค. setdata ๋ฉ”์„œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” first์™€ second ๊ทธ๋ฆฌ๊ณ  self๋ฅผ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค. ์ผ๋‹จ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.

 

 a = calculator() #๋ถ•์–ด๋นต a ์ƒ์„ฑ
 b = calculator() #๋ถ•์–ด๋นต b ์ƒ์„ฑ
 
 a.setdata(1,2) #๋ถ•์–ด๋นต a์—๋Š” ์žฌ๋ฃŒ 1,2 
 b.setdata(3,4) #๋ถ•์–ด๋นต b์—๋Š” ์žฌ๋ฃŒ 3,4

์šฐ๋ฆฌ๋Š” ๋ถ„๋ช… 3๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๋Š”๋ฐ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ๋‘๊ฐœ๋ฐ–์— ์ž…๋ ฅ๋ฐ›์ง€ ์•Š์•˜๋‹ค. ๊ทธ ์ด์œ ๋Š” self์—๋Š” ๋ฉ”์„œ๋“œ setdata๋ฅผ ํ˜ธ์ถœํ•œ ๊ฐ์ฒด๊ฐ€ ์ž๋™์œผ๋กœ ์ „๋‹ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ง๋กœ ํ’€์ž๋ฉด "(a ๋ถ•์–ด๋นต์—) ์žฌ๋ฃŒ 1,2๋„ฃ์ž" ์—์„œ ์•ž์— (a ๋ถ•์–ด๋นต์—)๋ฅผ ์ƒ๋žตํ•œ ๋А๋‚Œ? ๊ทธ๊ฑฐ๋ฅผ a.setdata์™€ ๊ฐ™์ด a๊ฐ€ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ–ˆ์œผ๋‹ˆ ์•Œ์•„์„œ a์•ˆ์— ๋„ฃ๋Š” ๊ฒƒ์ด๋‹ค. Self ๋ง๊ณ  ๋‹ค๋ฅธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด๋„ ์ƒ๊ด€ ์—†๋‹ค.

๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.

a = calculator()
calculator().setdata(a,4,2)

์ด๋Ÿฐ ๊ฒฝ์šฐ ๊ฐ์ฒด a๋ฅผ ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜ self์— ๊ผญ ์ „๋‹ฌํ•ด ์ฃผ์–ด์•ผ ํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ๋ฐ˜๋“œ์‹œ ์ƒ๋žตํ•ด์„œ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค.

 

setdata ๋ฉ”์„œ๋“œ์˜ ์ˆ˜ํ–‰๋ฌธ

์ด์ œ ๋ฉ”์„œ๋“œ์˜ ์ˆ˜ํ–‰๋ฌธ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž

def setdata(self, first,second) : # ๋ฉ”์„œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜
	self.first = first #๋ฉ”์„œ๋“œ์˜ ์ˆ˜ํ–‰๋ฌธ
	self.second = second #๋ฉ”์„œ๋“œ์˜ ์ˆ˜ํ–‰๋ฌธ

a.setdata(4,2) ์™€ ๊ฐ™์ด ํ˜ธ์ถœํ•˜๋ฉด setdata์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ first, second์—๋Š” ๊ฐ๊ฐ 4์™€ 2๊ฐ€ ์ „๋‹ฌ๋˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์„๋œ๋‹ค.

self.first = 4
self.second = 2
=======================
a.first = 4
a.second = 2

a ๊ฐ์ฒด์˜ first ๋ณ€์ˆ˜์— 4๋ฅผ ์ €์žฅํ•˜๊ณ , a ๊ฐ์ฒด์˜ second ๋ณ€์ˆ˜์— 2๋ฅผ ์ €์žฅํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค.

 

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

๊ทธ๋Ÿผ Calculator ํด๋ž˜์Šค์— ๋”ํ•˜๊ธฐ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์–ด๋ณด์ž.

class calculator: #๊ณ„์‚ฐ๊ธฐ ํด๋ž˜์Šค ์ƒ์„ฑ
	def setdata(self, first,second): # first์™€ second์— ์—ฐ์‚ฐํ•  ์ˆ˜ ์ €์žฅ
		self.first = first #๊ฐ์ฒด์˜ first๋ณ€์ˆ˜์— ์ž…๋ ฅ๋ฐ›์€ first๊ฐ’ ์ €์žฅ
		self.second = second #๊ฐ์ฒด์˜ second๋ณ€์ˆ˜์— ์ž…๋ ฅ๋ฐ›์€ second๊ฐ’ ์ €์žฅ
        
   	def add(self,first,second):
    		result = self.first + self.second
    		return result

๋‹จ์ˆœํ•˜๊ฒŒ ํด๋ž˜์Šค ์•ˆ์— ํ•จ์ˆ˜๋ฅผ ํ•˜๋‚˜ ๋” ๋งŒ๋“ค์–ด ์ฃผ๋ฉด ๋œ๋‹ค. 

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

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

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

wikidocs.net

 

728x90

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

Python - ํด๋ž˜์Šค (Class) 3  (0) 2022.01.10
Python - ํด๋ž˜์Šค (Class) 1  (1) 2022.01.09