์ฝ”๋“œ - ํŒจ์บ  ์ˆ˜์—… ์ฝ”๋“œ ์ฐธ๊ณ 

 

 

1. ๊ฐ์ฒด์ง€ํ–ฅ vs ์ ˆ์ฐจ์ง€ํ–ฅ ๊ฐ„๋‹จํ•œ ๋น„๊ต

ํŒŒ์ด์ฌ์€ OOP (๊ฐ์ฒด์ง€ํ–ฅ) ์–ธ์–ด์ด๋‹ค.  

๊ฐ์ฒด์ง€ํ–ฅ๊ณผ ์ ˆ์ฐจ์ง€ํ–ฅ์€ ๋•Œ์— ๋”ฐ๋ผ ์žฅ์ ๊ณผ ๋‹จ์ ์ด ์žˆ๋‹ค. 

๊ฐ์ฒด์ง€ํ–ฅ์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ๊ณผ ์ฝ”๋“œ ์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. 

์ ˆ์ฐจ์ง€ํ–ฅ์€ ์œ„์—์„œ๋ถ€ํ„ฐ ์•„๋ž˜๋กœ ์‹คํ–‰ํ•œ๋‹ค. ์‹คํ–‰์†๋„๊ฐ€ ๋น ๋ฅด์ง€๋งŒ ์œ ์ง€๋ณด์ˆ˜ , ๊ฐœ์„ ์‹œํ‚ค๋Š” ์ž‘์—…์ด ์–ด๋ ต๋‹ค. ๊ทธ๋ž˜์„œ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉฐ, ๋””๋ฒ„๊น…๋„ ์–ด๋ ต๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. 

ํ•˜์ง€๋งŒ ๋ฌด์กฐ๊ฑด ๊ฐ์ฒด์ง€ํ–ฅ์ด ์ข‹์€ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋น ๋ฅธ ์†๋„๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœํ•˜๊ณ  ๋ชฉ์ ์ด ๋ช…ํ™•ํ•œ ๊ฒฝ์šฐ์—๋Š” ์ ˆ์ฐจ์ง€ํ–ฅ์ด ์œ ๋ฆฌํ•˜๋‹ค๊ณ  ํ•œ๋‹ค. 

 

 

 

2.  ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด ํŒŒ์ด์ฌ - ํด๋ž˜์Šค ์‚ฌ์šฉํ•˜๊ธฐ 

๋งŒ์•ฝ ํ•™์ƒ์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๋ฅผ ์งœ์•ผ ํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ๋ฒˆํ˜ธ, ํ•™๋…„์„ ํฌํ•จํ•œ๋‹ค๊ณ  ํ•˜๋ฉด , ํ•™์ƒ๋งˆ๋‹ค ๋”ฐ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ฆฌ์ŠคํŠธ ๊ตฌ์กฐ๋กœ ์ง ๋‹ค๋ฉด ๋ฐ˜๋ณต๋˜๋Š” ์ฝ”๋“œ๋„ ๋งŽ์•„์ง€๊ณ , ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฝ์ง€ ์•Š๋‹ค. ๋”ฐ๋ผ์„œ class๋ฅผ ์ด์šฉํ•˜์—ฌ ์ƒ์„ฑ์„ ํ•ด๋ณด๋„๋ก ํ•œ๋‹ค. 

class Student():
    def __init__(self, name, number, grade, details):
        self._name = name 
        self._number = number
        self._grade = grade
        self._details = details

    def __str__(self):  
        return 'str : {} - {}'.format(self._name, self._number)

    ### str ์ด ์—†์„ ๋–ˆ ์ด๊ฒƒ์ด ํ˜ธ์ถœ ๋จ 
    def __repr__(self):
        return 'repr : {} - {}'.format(self._name, self._number)

 Student ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋Š” name, number, grade, details๋ฅผ ๊ธฐ์ž…ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. 

__str__ ์€ ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ํ˜ธ์ถœ์ด ๋˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. __repr__ ์€ ๋น„์Šทํ•œ๋ฐ , __str__์ด ์—†์œผ๋ฉด ์ด ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค. 

 

 

 

- ๊ฐ์ฒด ์ƒ์„ฑ 

student1 = Student('Kim', 1, 1, {'gender' : 'Male', 'score1' : 95, 'score2' : 88})
student2 = Student('Lee', 2, 2, {'gender' : 'Female', 'score1' : 77, 'score2' : 92})

ํ•™์ƒ ๋‘๋ช…์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด ์ค€๋‹ค. 

 

 

- ๊ฐ์ฒด์˜ ์ •๋ณด๋ฅผ ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ๋ณด๊ธฐ

print(student1.__dict__)
print(student2.__dict__)

 

 

- __str__, __repr__ ํ˜ธ์ถœ

students_list = []
students_list.append(student1)
students_list.append(student2)
students_list.append(student3)


for x in students_list:
    print(repr(x))
    print(x) # ์ง€์ •ํ•œ str์ด ๋‚˜์˜ด 

ํ•œ๋ฒˆ์— ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ์ฒด๋ฅผ ๋ฆฌ์ŠคํŠธ์— ๋„ฃ์–ด์ฃผ๊ณ , for๋ฌธ์œผ๋กœ ์ถœ๋ ฅํ•ด์ค€๋‹ค. ๊ทธ๋ƒฅ ์ถœ๋ ฅ์„ ํ•˜๋ฉด str์ด ๋‚˜์˜ค๊ณ , repr์„ ํ˜ธ์ถœํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด repr(๊ฐ์ฒด)๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

 

 

 

 

 

 

 

 

+ Recent posts