본문 바로가기
IT/Programming Language

[Python] Class

by FreeYourMind 2022. 4. 15.

Class를 사용하는 이유

- 붕어빵 틀(Class), 붕어빵(Object, 객체)

- 여러 사람들이 각자 따로 붕어빵을 먹음

class Calculator:
	# 생성자 : 초기값 설정 __init__
    def __init__(self):
        self.result = 0

	# class 내부 함수
    def add(self, num):
        self.result += num
        return self.result

cal1 = Calculator()
cal2 = Calculator()

print(cal1.add(3)) # 3
print(cal1.add(4)) # 7 (기존에 더했던 3이 cal1 객체에 저장되어 있음)
print(cal2.add(3)) # 3
print(cal2.add(7)) # 10 (기존에 더했던 3이 cal2 객체에 저장되어 있음)

 

상속

- 기존 Class를 변경하지 않고 기능을 추가하거나 변경할 경우

 

method overriding

- method 기능 수정

class FourCal:
     def __init__(self, first, second):
         self.first = first
         self.second = second
     def setdata(self, first, second):
         self.first = first
         self.second = second
     def add(self):
         result = self.first + self.second
         return result
     def mul(self):
         result = self.first * self.second
         return result
     def sub(self):
         result = self.first - self.second
         return result
     def div(self):
         result = self.first / self.second
         return result

class MoreFourCal(FourCal): # 상속
     def pow(self):
         result = self.first ** self.second
         return result
         
class SafeFourCal(FourCal): # FourCal Class div method overriding 
     def div(self):
         if self.second == 0:  # 나누는 값이 0인 경우 0을 반환
             return 0
         else:
             return self.first / self.second

 

 

Class variable

- Class로 만들어지는 객체 전체가 공유하는 변수

class Family:
     lastname = "김"
     
print(Family.lastname) # 김

a = Family()
b = Family()
Family.lastname = "박"

print(a.lastname) # 박
print(b.lastname) # 박

 

 

 

 

출처

https://wikidocs.net/28

'IT > Programming Language' 카테고리의 다른 글

[Python] 행렬 회전  (0) 2022.03.23
[Python] 까먹을 만한 문법 정리  (0) 2022.03.22
[Python] switch -> match  (0) 2022.03.22
Generic이란  (0) 2022.03.06
[Javascript] 비동기 처리 방식  (0) 2022.02.20

댓글