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

JiYoung Dev ๐Ÿ–ฅ

[ํŒŒ์ด์ฌ] ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ / ํด๋ž˜์Šค / ๋ฉ”์„œ๋“œ ๋ณธ๋ฌธ

python

[ํŒŒ์ด์ฌ] ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ / ํด๋ž˜์Šค / ๋ฉ”์„œ๋“œ

Shinjio 2023. 2. 20. 21:07

2023.02.20 ์ฝ”๋“œ์ž‡ ํ•™์Šต๋‚ด์šฉ ์ •๋ฆฌ

 

๐Ÿ”Ž ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ 

๐Ÿ“– ๊ฐ์ฒด (object)

์†์„ฑ๊ณผ ํ–‰๋™์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์กด์žฌ

์šฐ๋ฆฌ๊ฐ€ ์‚ด์•„๊ฐ€๋ฉด์„œ ๋ณด๋Š” ๋ชจ๋“  ์กด์žฌ

ํ˜„์‹ค์— ์กด์žฌํ•˜๋“ , ๊ฐ€์ƒ์œผ๋กœ ์กด์žฌํ•˜๋“  ์ƒ๊ด€์—†์ด ์†์„ฑ๊ณผ ํ–‰๋™์„ ๋– ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋ชจ๋‘ ๊ฐ์ฒด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Œ

์ž๋™์ฐจ
์†์„ฑ : ์ƒ‰์ƒ, ํฌ๊ธฐ, ์ขŒ์„์ˆ˜, ...
ํ–‰๋™ : ์‹œ๋™์„ ๊ฑธ๋‹ค, ์—‘์…€์„ ๋ฐ์œผ๋ฉด ์•ž์œผ๋กœ ๋‚˜๊ฐ„๋‹ค, ๋ธŒ๋ ˆ์ดํฌ๋ฅผ ๋ฐŸ์œผ๋ฉด ๋ฉˆ์ถ˜๋‹ค, ...

์ธ์Šคํƒ€๊ทธ๋žจ ์œ ์ €
์†์„ฑ : ์ด๋ฉ”์ผ ์ฃผ์†Œ, ๋น„๋ฐ€๋ฒˆํ˜ธ, ์นœ๊ตฌ ๋ชฉ๋ก, ...
ํ–‰๋™ : ์ข‹์•„์š”, ํŒ”๋กœ์šฐ, ...

 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์†์„ฑ์€ ๋ณ€์ˆ˜๋กœ ํ–‰๋™์€ ๋ฉ”์†Œ๋“œ(ํ•จ์ˆ˜)๋กœ ์ •์˜๋จ

 

๐Ÿ“– ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€

ํ”„๋กœ๊ทธ๋žจ์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ๋œ ๊ฐ์ฒด๋“ค๊ณผ ๊ทธ ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์œผ๋กœ ํŒŒ์•…ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ ‘๊ทผ๋ฒ•

(ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ์ฒด์ง€ํ–ฅ์ ์œผ๋กœ ์„ค๊ณ„ํ–ˆ๋‹ค. = ๋ชจ๋ธ๋งํ–ˆ๋‹ค. ๋ผ๊ณ  ํ‘œํ˜„)

 

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๋ ค๋ฉด 

1. ํ”„๋กœ๊ทธ๋žจ์— ์–ด๋–ค ๊ฐ์ฒด๋“ค์ด ํ•„์š”ํ• ์ง€ ์ •ํ•œ๋‹ค.

2. ๊ฐ์ฒด๋“ค์˜ ์†์„ฑ๊ณผ ํ–‰๋™์„ ์ •ํ•œ๋‹ค.

3. ๊ฐ์ฒด๋“ค์ด ์„œ๋กœ ์–ด๋–ป๊ฒŒ ์†Œํ†ตํ• ์ง€ ์ •ํ•œ๋‹ค. 

 

< ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ์˜ ๊ฐ„๋‹จํ•œ ์˜ˆ : ์ด๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ >

1. '์ด๊ฒŒ์ž„'์— ์–ด๋–ค ๊ฐ์ฒด๋“ค์ด ํ•„์š”ํ• ์ง€ ์ •ํ•œ๋‹ค.
๊ฐ์ฒด : ๊ฒŒ์ž„ ์บ๋ฆญํ„ฐ ๊ฐ์ฒด, ์ด ๊ฐ์ฒด, ์ด์•Œ ๊ฐ์ฒด


2. ๊ฐ ๊ฐ์ฒด๋“ค์˜ ์†์„ฑ๊ณผ ํ–‰๋™์„ ์ •ํ•œ๋‹ค.
๊ฒŒ์ž„ ์บ๋ฆญํ„ฐ ๊ฐ์ฒด 

์†์„ฑ : ID ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ์ด ์ฒด๋ ฅ ๋ชฉ์ˆจ
ํ–‰๋™ : ์ด์„ ๋ฐœ์‚ฌํ•œ๋‹ค ๋‹ฌ๋ฆฐ๋‹ค ์ฒด๋ ฅ์ด 0์ด ๋˜๋ฉด ์ฃฝ๋Š”๋‹ค
์ด ๊ฐ์ฒด
์†์„ฑ : ๋ชจ๋ธ๋ช… ๋ฌด๊ฒŒ ์žฅ์ „๋œ ์ด์•Œ ๊ฐœ์ˆ˜
ํ–‰๋™ : ์ด์•Œ์„ ๋ฐœ์‚ฌํ•œ๋‹ค. 
์ด์•Œ ๊ฐ์ฒด
์†์„ฑ : ๊ณต๊ฒฉ๋ ฅ
ํ–‰๋™ : ์ด์•Œ์„ ๋งž์€ ์บ๋ฆญํ„ฐ์˜ ์ฒด๋ ฅ์„ ๊ณต๊ฒฉ๋ ฅ๋งŒํผ ๊นŽ๋Š”๋‹ค.

3. ๊ฐ์ฒด๋“ค์ด ์„œ๋กœ ์–ด๋–ป๊ฒŒ ์†Œํ†ตํ• ์ง€ ์ •ํ•œ๋‹ค.
๊ฒŒ์ž„ ์บ๋ฆญํ„ฐ๊ฐ€ ์ด์„ ๋ฐœ์‚ฌ → ์ด์— ์žฅ์ „๋œ ์ด์•Œ ๊ฐœ์ˆ˜๊ฐ€ 1๊ฐœ ์ค„์–ด๋“ ๋‹ค → ์ด์•Œ์„ ๋งž์€ ์บ๋ฆญํ„ฐ์˜ ์ฒด๋ ฅ์ด ์ด์•Œ์˜ ๊ณต๊ฒฉ๋ ฅ ๋งŒํผ ๊นŽ์ธ๋‹ค → ๊ฒŒ์ž„ ์บ๋ฆญํ„ฐ์˜ ์ฒด๋ ฅ์ด 0์ด ๋˜๋ฉด ์ฃฝ๋Š”๋‹ค. 

 

๐Ÿ“– ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค

์ธ์Šคํƒ€๊ทธ๋žจ์„ ์˜ˆ๋กœ ๋“ค์–ด์„œ ์„ค๋ช…ํ•˜๋ฉด, ์ธ์Šคํƒ€๊ทธ๋žจ์˜ ์‚ฌ์šฉ์ž ๊ฐ๊ฐ์€ ๋ชจ๋‘ ์ด๋ฉ”์ผ ์ฃผ์†Œ, ๋น„๋ฐ€๋ฒˆํ˜ธ, ํŒ”๋กœ์›Œ, ํŒ”๋กœ์šฐ ๋“ฑ ๊ณตํ†ต๋œ ์†์„ฑ๊ณผ ํ–‰๋™์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ.(๋‚ด๋ถ€์˜ ์กด์žฌํ•˜๋Š” ๊ฐ’์€ ๋‹ค๋ฆ„) ์ด๋ ‡๊ฒŒ ๊ณตํ†ต๋œ ์†์„ฑ๊ณผ ํ–‰๋™๋“ค์„ ๊ฐ์ฒด์˜ 'ํ‹€'์ด๋ผ๊ณ  ํ•˜๋ฉด, 'ํ‹€'๋กœ ๋งŒ๋“  ๊ฒฐ๊ณผ๋ฌผ์„ 'ํด๋ž˜์Šค'๋ผ๊ณ  ํ•จ. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ํด๋ž˜์Šค๋กœ '๊ฐ์ฒด'๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ. ์—ฌ๊ธฐ์„œ ๊ฐ์ฒด๋Š” ์ธ์Šคํ„ด์Šค๋ผ๊ณ ๋„ ํ•จ. 

 

โ–ผโ–ผโ–ผ ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค ์ •์˜ํ•˜๊ธฐ

ํด๋ž˜์Šค ์ •์˜
class ํด๋ž˜์Šค ์ด๋ฆ„  
      ํด๋ž˜์Šค์˜ ๋‚ด์šฉ(์†์„ฑ, ํ–‰๋™)

๋‹จ, ํด๋ž˜์Šค ์ด๋ฆ„์˜ ์ฒซ ๊ธ€์ž๋Š” ํ•ญ์ƒ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•  ๊ฒƒ - ํŒŒ์ด์ฌ ๊ทœ์น™

์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
์ธ์Šคํ„ด์Šค ์ด๋ฆ„1 = ํด๋ž˜์Šค ์ด๋ฆ„() 
์ธ์Šคํ„ด์Šค ์ด๋ฆ„2 = ํด๋ž˜์Šค ์ด๋ฆ„()
์ธ์Šคํ„ด์Šค ์ด๋ฆ„3 = ํด๋ž˜์Šค ์ด๋ฆ„()

 

๐Ÿ“– ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜

์ธ์Šคํ„ด์Šค๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์†์„ฑ์„ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ผ๊ณ  ํ•จ

์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์ •์˜ํ•˜๊ธฐ
์ธ์Šคํ„ด์Šค ์ด๋ฆ„.์†์„ฑ ์ด๋ฆ„(์ธ์Šคํ„ด์ˆ˜ ๋ณ€์ˆ˜) = "์†์„ฑ์— ๋„ฃ์„ ๊ฐ’"

์˜ˆ. 
user1.name = "๊น€๋Œ€์œ„"
user1.email = "captin@korea.ke"
user1.password = "12345"

user2.name = "๊น€๊ธฐ์˜"
...

user3.name = "์‹ฌ์ง€์›"
...

์œ„์—์„œ name, email, password ๊ฐ ์ธ์Šคํ„ด์Šค์˜ ๋ณ€์ˆ˜

์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ
์ธ์Šคํ„ด์Šค ์ด๋ฆ„.์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์ด๋ฆ„
print(user1.email)
print(user2.password)

# ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์€ ์ธ์Šคํ„ด์Šค์˜ ๋ณ€์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋ฉด? error ๋ฐœ์ƒ
# ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๊ผญ ์ •์˜ํ•ด์•ผ ํ•จ

 

โ–ผโ–ผโ–ผ ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค, ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์ •์˜ํ•˜๊ธฐ ์ฝ”๋“œ ์ž‘์„ฑ ์˜ˆ

 

๐Ÿ“– ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ

์œ„์—์„œ ์ธ์Šคํ„ด์Šค์˜ ์†์„ฑ์„ ๋ณ€์ˆ˜๋กœ ๋‚˜ํƒ€๋ƒˆ๋‹ค๋ฉด, ํ–‰๋™์€ ํ•จ์ˆ˜๋กœ ๋‚˜ํƒ€๋ƒ„

ํด๋ž˜์Šค ์•ˆ์— ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ์ฒด์˜ ํ–‰๋™์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ, ๊ฐ์ฒด์˜ ํ–‰๋™์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ•จ์ˆ˜๋ฅผ ๋ฉ”์†Œ๋“œ๋ผ๊ณ  ํ•จ

 

๋ฉ”์†Œ๋“œ์˜ ์ข…๋ฅ˜ : ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ, ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ, ์ •์  ๋ฉ”์†Œ๋“œ

 

์ด๋Ÿฌํ•œ ๋ฉ”์†Œ๋“œ ์ค‘ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋ž€ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์— ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๋ฉ”์†Œ๋“œ

 

โ–ผโ–ผโ–ผ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ ์˜ˆ (say_hello)

say_hello ํ•จ์ˆ˜๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ name์„ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜

 

โš™ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ๋ฒ•

1. ํด๋ž˜์Šค๋กœ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•

ํด๋ž˜์Šค ์ด๋ฆ„.๋ฉ”์†Œ๋“œ์ด๋ฆ„(์ธ์Šคํ„ด์Šค)

 

2. ์ธ์Šคํ„ด์Šค๋กœ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•

์ธ์Šคํ„ด์Šค ์ด๋ฆ„.๋ฉ”์†Œ๋“œ()

์ธ์Šคํ„ด์Šค๋กœ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ฉ”์†Œ๋“œ์˜ ์ฒซ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ž๋™ ์ „๋‹ฌ

→ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•  ๋•Œ๋Š” ํ•ญ์ƒ ์ฒซ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์จ์•ผ ํ•จ

 

โ–ผโ–ผโ–ผ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ์ฝ”๋“œ

 

์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ์˜ ํŠน๋ณ„ํ•œ ๊ทœ์น™

์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ์˜ ์ฒซ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ ์ด๋ฆ„์€ self๋กœ ์ž‘์„ฑ

 

์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์€ ๊ฐ™์•„๋„ ์ƒ๊ด€์—†์Œ

์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ 

 

๋ฌธ์ œํ’€์ด. ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ํ•œ ๋ฒˆ์— ์„ค์ •ํ•˜๋Š” ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ(initialize) ์ž‘์„ฑ

 

์œ„์˜ ๋ฌธ์ œ์—์„œ initailize ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•˜์—ฌ user1, user2์™€ user3, user4์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋‹ค๋ฅธ ์ด์œ 

- user1๊ณผ user2๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ 3๊ฐœ, user3์™€ user4๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ 4๊ฐœ

user1๊ณผ user2๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ํ†ตํ•ด์„œ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์žˆ์Œ. ๋”ฐ๋ผ์„œ ์ฒซ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ์ธ self๋กœ ์ธ์Šคํ„ด์Šค user1์ด ์ž๋™์œผ๋กœ ๋„˜์–ด๊ฐ. ๊ทธ๋ž˜์„œ initialize ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ user1 ์ธ์Šคํ„ด์Šค๋ฅผ ์ง์ ‘ ๋„˜๊ฒจ์ฃผ์ง€ ์•Š์•„๋„ ๋จ

 

๋ฐ˜๋ฉด user3์™€ user4๋Š” ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด์„œ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœ. ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœํ•  ๊ฒฝ์šฐ ์ฒซ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ž๋™์œผ๋กœ ์ „๋‹ฌ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— user3/user4 ์ธ์Šคํ„ด์Šค๋ฅผ ์ฒซ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ง์ ‘ ๋„˜๊ฒจ์ค˜์•ผ ํ•จ

 

๐Ÿ“– ํŠน์ˆ˜ ๋ฉ”์†Œ๋“œ

magic method = special method = ํŠน์ˆ˜ ๋ฉ”์†Œ๋“œ = ๋˜๋” ๋ฉ”์†Œ๋“œ๋ผ๊ณ  ํ•จ

์ด๋“ค์€ ํŠน์ • ์ƒํ™ฉ์—์„œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์†Œ๋“œ๋กœ ๋ฉ”์†Œ๋“œ์˜ ์ด๋ฆ„ ์•ž ๋’ค์— ์–ธ๋”๋ฐ” 2๊ฐœ๊ฐ€ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ

 

โš™  __init__ ๋ฉ”์†Œ๋“œ : ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ

 

__init__ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ธธ์—ˆ๋˜ ์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ

 

โ–ผโ–ผโ–ผ __init__ ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ ์ „

 

โ–ผโ–ผโ–ผ __init__ ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ ํ›„

 

 

 

๋ฌธ์ œํ’€์ด. ํŒ”๋กœ์šฐ ๊ธฐ๋Šฅ ๋™์ž‘ ๋ฉ”์†Œ๋“œ ์ž‘์„ฑํ•˜๊ธฐ

 

โš™ __str__ ๋ฉ”์†Œ๋“œ

์ธ์Šคํ„ด์Šค ์ถœ๋ ฅ ์‹œ ์›ํ•˜๋Š” ์ •๋ณด๊ฐ€ ๋‚˜์˜ค๊ฒŒ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

 

โ–ผโ–ผโ–ผ __str__ ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ ์ „

 

โ–ผโ–ผโ–ผ __str__ ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ ํ›„

 

๐Ÿ“– ํด๋ž˜์Šค ๋ณ€์ˆ˜ 

์ธ์Šคํ„ด์Šค ์ž์‹ ๋งŒ์˜ ์†์„ฑ → ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜

์—ฌ๋Ÿฌ ์ธ์Šคํ„ฐ์Šค๋“ค์ด ๊ณต์œ ํ•˜๋Š” ์†์„ฑ → ํด๋ž˜์Šค ๋ณ€์ˆ˜

 

ํด๋ž˜์Šค ๋ณ€์ˆ˜๋ž€, ๊ฐ™์€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋“ค์ด ๊ณต์œ ํ•˜๋Š” ๊ฐ’์„ ๋งํ•จ

 

์–ด๋Š sns์˜ User ํด๋ž˜์Šค์—์„œ ์œ ์ €์˜ ์ดํ•ฉ์€ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋“ค์ด ๊ณต์œ ํ•˜๋Š” ๊ฐ’์œผ๋กœ ํด๋ž˜์Šค ๋ณ€์ˆ˜๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Œ

์•„๋ž˜ ์‚ฌ์ง„์—์„œ๋Š” count๊ฐ€ ํด๋ž˜์Šค ๋ณ€์ˆ˜, ์ด ์œ ์ €์˜ ์ˆ˜๋กœ ํด๋ž˜์Šค ๋ณ€์ˆ˜๋กœ ์ง€์ •

 

ํด๋ž˜์Šค ๋ณ€์ˆ˜๋Š” ํด๋ž˜์Šค ์ •์˜ ๋ถ€๋ถ„ ์•„๋ž˜ ์ง€์ •

 

ํด๋ž˜์Šค ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ฝ๊ฑฐ๋‚˜ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

1. ํด๋ž˜์Šค ์ด๋ฆ„. ํด๋ž˜์Šค ๋ณ€์ˆ˜ ์ด๋ฆ„

2. ์ธ์Šคํ„ด์Šค ์ด๋ฆ„. ํด๋ž˜์Šค ๋ณ€์ˆ˜ ์ด๋ฆ„ 

    ๋‹จ, ํด๋ž˜์Šค ๋ณ€์ˆ˜์— ๊ฐ’์„ ์ง€์ •ํ•  ๋•Œ๋Š” ์ธ์Šคํ„ด์Šค ์ด๋ฆ„์ด ์•„๋‹Œ ํด๋ž˜์Šค ์ด๋ฆ„(1๋ฒˆ)์œผ๋กœ ์ง€์ •ํ•  ๊ฒƒ

    WHY? ์ธ์Šคํ„ด์Šค ์ด๋ฆ„์œผ๋กœ ์ง€์ •ํ•  ๊ฒฝ์šฐ, ํด๋ž˜์Šค ๋ณ€์ˆ˜์™€ ์ด๋ฆ„์ด ๊ฐ™์€ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋กœ ์ƒˆ๋กญ๊ฒŒ ์ง€์ •๋˜๊ธฐ ๋•Œ๋ฌธ

 

๐Ÿ“– ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ (decorator) ํ•จ์ˆ˜

์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ๊พธ๋ฉฐ์„œ ์ƒˆ๋กœ์šด ํ•จ์ˆ˜๋กœ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ

ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ๋ฐ›์•„์„œ, ๋˜ ๋‹ค๋ฅธ ๊พธ๋ฉฐ์ง„ ์ƒˆ๋กœ์šด ํ•จ์ˆ˜๋กœ return ํ•˜๋Š” ๊ฒƒ

 

๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํ•จ์ˆ˜๋ฅผ ์“ฐ๋ ค๋ฉด @๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํ•จ์ˆ˜์ด๋ฆ„์„ ๋‹ฌ์•„์ฃผ๋ฉด ๋จ

 

๐Ÿ“– ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ

์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ฝ๊ฑฐ๋‚˜ ์„ค์ •ํ•˜๋Š” ๋ฉ”์†Œ๋“œ → ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ

ํด๋ž˜์Šค ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ฝ๊ฑฐ๋‚˜ ์„ค์ •ํ•˜๋Š” ๋ฉ”์†Œ๋“œ → ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ

 

์ž‘์„ฑ๋ฐฉ๋ฒ• 
@classmethode

def ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ ์ด๋ฆ„(cls):
      ์‹คํ–‰๋ฌธ

 

ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ ๊ทœ์น™ 

1. ์ฒซ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ํด๋ž˜์Šค๊ฐ€ ์ž๋™ ์ „๋‹ฌ

2. ๊ทธ๋ฆฌ๊ณ  ํด๋ž˜์Šค๋ฅผ cls๋ผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ๋ฐ›์Œ

 

 

ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ ์‹คํ–‰
ํด๋ž˜์Šค ์ด๋ฆ„.ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ ์ด๋ฆ„()
ํ˜น์€
์ธ์Šคํ„ด์Šค ์ด๋ฆ„.ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ ์ด๋ฆ„()
โ€ป ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ ๋ชจ๋‘ ํŒŒ๋ผ๋ฏธํ„ฐ()๋ฅผ ๋น„์›Œ๋‘ .
ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ์˜ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์ฒซ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ํด๋ž˜์Šค๋ฅผ ์ž๋™ ์ „๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ
ํด๋ž˜์Šค๊ฐ€ ์ž๋™ ์ „๋‹ฌ๋˜๋Š” ์ด์œ ๋Š” ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋กœ ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์คฌ๊ธฐ ๋•Œ๋ฌธ

 

 

๋ฉ”์†Œ๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ
์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์“ด๋‹ค๋ฉด ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋ฅผ,
ํด๋ž˜์Šค ๋ณ€์ˆ˜๋ฅผ ์“ด๋‹ค๋ฉด ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•จ.

๋งŒ์•ฝ,
ํด๋ž˜์Šค ๋ณ€์ˆ˜์™€ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ๋‘˜ ๋‹ค ์“ฐ๋Š” ๊ฒฝ์šฐ์—๋Š” ์–ด๋–ค ๋ฉ”์†Œ๋“œ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ• ๊นŒ?
์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋กœ ๋งŒ๋“ค ๊ฒƒ
→ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ์—์„œ๋Š” ํด๋ž˜์Šค ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์ง€๋งŒ, ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ

๋งŒ์•ฝ, ์ธ์Šคํ„ด์Šค๊ฐ€ ์—†์–ด๋„ ํ•„์š”ํ•œ ์ •๋ณด๊ฐ€ ์žˆ๋‹ค๋ฉด?

→ ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ

์ธ์Šคํ„ด์Šค๊ฐ€ ํ•˜๋‚˜๋„ ์—†๋”๋ผ๋„ ์‚ฌ์šฉํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋ฉด ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•จ

 

โ–ผโ–ผโ–ผ ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ ์—†์ด๋„ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ž˜์Šค ๋ณ€์ˆ˜๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ์Œ

 

โ–ผโ–ผโ–ผ ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•˜๋‚˜๋„ ์—†๋”๋ผ๋„ ์‚ฌ์šฉํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋ฉด ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•จ

 

๋ฌธ์ œํ’€์ด. ์œ ์ € ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์— ํ•„์š”ํ•œ ์ •๋ณด๋‹ค ๋ฌธ์ž์—ด์ผ ๊ฒฝ์šฐ, ๋ฆฌ์ŠคํŠธ์ผ ๊ฒฝ์šฐ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑํ•˜๊ธฐ

 

๐Ÿ“– ์ •์  ๋ฉ”์†Œ๋“œ(static method)

์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜, ํด๋ž˜์Šค ๋ณ€์ˆ˜๋ฅผ ์ „ํ˜€ ๋‹ค๋ฃจ์ง€ ์•Š๋Š” ๋ฉ”์†Œ๋“œ

 

๋ฉ”์†Œ๋“œ ์ •์˜ ์œ„์— @staticmethod ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•ด์•ผ ํ•จ

์ •์  ๋ฉ”์†Œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ์˜ self๋‚˜ ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ์˜ cls์ฒ˜๋Ÿผ ์ž๋™์œผ๋กœ ์ „๋‹ฌ๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†์Œ

์ •์  ๋ฉ”์†Œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค, ํด๋ž˜์Šค ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

 

์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋‚˜ ํด๋ž˜์Šค ๋ณ€์ˆ˜ ์ค‘ ์•„๋ฌด๊ฒƒ๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋ฉ”์†Œ๋“œ์ผ ๊ฒฝ์šฐ ์ •์  ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๋ฉด ๋จ.

์ฆ‰, ์–ด๋–ค ์†์„ฑ์„ ๋‹ค๋ฃจ์ง€ ์•Š๊ณ , ๋‹จ์ง€ ๊ธฐ๋Šฅ(ํ–‰๋™)์ ์ธ ์—ญํ• ๋งŒ ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•  ๋•Œ ์ •์  ๋ฉ”์†Œ๋“œ๋กœ ์ •์˜