이롭게 현명하게
[Python] 파이썬 클래스 본문
class Calculator: # 부모 클래스
name='Roger' # Calculator 클래스 변수
x=0 # 인스턴스 변수
y=0 # 인스턴스 변수
def __init__(self,x,y): # 클래스 생성자
self.x = x
self.y = y
def setData(self,x,y): # 메서드의 매개변수
self.x = x # 메서드의 수행문
self.y=y # 메서드의 수행문
def add(self):
result = self.x+self.y
return result
def div(self):
result = self.x // self.y
return result
class MoreCalculator(Calculator) :
# Calculator의 자식클래스
# MoreCalculator의 부모 클래스 : Calculator
name='more Roger' # MoreCalculator 클래스 변수
def pow(self):
result = self.x ** self.y
return result
class Cal(Calculator):
name = 'C' # Cal 클래스 변수
def div(self): # 메소드 오버라이딩
if self.x ==0:
return 0
else:
return self.x//self.y
a = Calculator(3,5)
b = MoreCalculator(4,2)
c = Cal(1,2)
print(c.name) # c
#a.setData(3,5)
print(a.add()) # 8
print(b.pow()) # 16
print(b.add()) # 6
# 클래스 변수
print(a.name) # Roger
print(b.name) # more Roger
b.name = 'update name'
print(b.name) # update name
클래스(class) : 똑같은 무엇인가를 계속해서 만들어 낼 수 있는 설계도면 (ex. 과자 틀, 붕어빵 틀)
객체(Object) : 클래스로 만든 피조물(ex. 과자 틀로 만든 과자, 붕어빵 틀로 만든 붕어빵)
인스턴스(instance) : 특정 객체(a)가 어떤 클래스(cookie)의 객체인지를 관계 위주로 설명할 때 사용한다.
- a는 인스턴스(X)
- a는 객체(O)
- a는 cookie의 객체(X)
- a는 cookie의 인스턴스 (O)
인스턴스 변수 : 인스턴스를 생성해야 비로소 사용할 수 있는 변수
클래스 변수 : 클래스 안에 공간이 할당도니 변수, 여러 인스턴스가 클래스 변수의 공간을 함께 사용
메서드(Method) : 클래스 안에 구현된 함수
객체를 통해 메서드를 호출하려면 도트(.) 연산자를 사용한다.
생성자 (Constructor) : 객체가 생성될 대 자동으로 호출되는 메서드
파이썬 메서드 이름으로 __init__를 사용하면 메서드는 생성자가 된다.
상속 (Inheritance) : 클래스 A를 만들 대 다른 클래스 B의 기능을 물려받을 수 있게 만드는 것
클래스를 상속하기 위해서는 클래스 이름 뒤 괄호 안에 상속할 클래스 이름을 넣어주면 된다.
<상속을 하는 이유>
상속은 기존 클래스를 변경하지 않고 기능을 추가하거나 기존 기능을 변경하려고 할 때 사용한다.
메서드 오버라이딩 (Overring,덮어쓰기) : 부모 클래스(상속한 클래스)에 잇는 메서드를 동일한 이름으로 다시 만드는 것을 메서드 오버라이딩라고 한다.
오버라이딩 하면 부모 클래스의 메서드 대신오버라이딩한 메서드가 호출된다.
self : 클래스 자신을 가리키는것
잘못된 정보는 댓글에 남겨주시면 감사하겠습니다!😊
댓글과 좋아요는 큰 힘이 됩니다!
[ 참고자료 ]
'Python' 카테고리의 다른 글
[Python] 파이썬 패키지 (0) | 2023.04.03 |
---|---|
[Python] 파이썬 모듈 (0) | 2023.03.31 |
[Python] 프로그램 입출력 / sys모듈 (0) | 2023.03.29 |
[Python] 파이썬 함수 매개변수 (0) | 2023.03.28 |
[Python] 파이썬 사용자 함수 (0) | 2023.03.27 |