python

클래스와 생성자

응엉잉 2022. 2. 26. 16:10

클래스와 생성자

클래스 : 붕어빵 틀

객체 : 붕어빵

객체는 고유의 기능과 성격을 가지고 있고, 서로 다른 객체들에게 영향을 미치지 않음

 

클래스 선언

class 클래스이름:
    클래스내용(코드)

 

객체 만드는 방법

객체명 = 클래스이름()

 

인스턴스 : 어떤 클래스의 객체인지 관계에 초점을 맞춘 용어

(객체)는 (클래스)의 인스턴스이다

 

클래스 내부에 존재하는 함수 : 메소드(Method)

 

객체 변수에 값을 저장하는 방법 : 생성자 : __init__

객체가 생성될 때 자동으로 호출되는 메소드

 

class Calculator:
    def __init__(self, first, second):
        self.first = first
        self.second = second

    def add(self):  # add 메소드
        result = self.first + self.second
        return result

a = Calculator(6, 3)   # 객체 생성시 초깃값 설정
print(a.add())

self 는 호출한 객체를 의미하며, 함수를 불러온 객체에 전달하는 역할을 함

예시에서는 self.first 가 a.first 와 같은 의미이고, self 가 a 에 add 라는 함수를 전달함

self.first = first ▶ a.first = 6

a.first = 6 이 실행되면 a객체에 first 변수가 생성되고 6의 값을 가진다

 

클래스의 상속

상속 : 다른 클래스의 기능을 물려받는것

부모클래스 : 상속해주는 클래스

자식클래스 : 상속받는 클래스

class 자식클래스(부모클래스) :
	자식클래스 내용 ...

부모클래스의 생성자를 끌어다 쓰기 때문에 추가적인 생성자가 필요하지 않은 경우에는 생성자를 적지 않아도 됨

생성자 상속받는 방법

## 자식클래스

def __init__() :
	super().__init__()

클래스 내부에서 super() 함수를 통해 부모클래스에 접근 가능

class PerfectCal(Calculator):
	def __init__(self, first, second):
		super().__init__(first, second)

 

메소드 오버라이딩

부모 클래스의 메소드를 자식 클래스에서 다시 정의하는것

재정의하고싶은 메소드를 자식 클래스에서 다시 적으면 됨

메소드 추가도 가능

 

클래스 변수

객체변수는 독립적으로 값을 유지하고 다른 객체에게 영향을 받지 않음

클래스변수는 클래스로 만든 모든 객체에게 값이 공유됨

class dessert :
	favorite = '스콘'
a = dessert()

print(a.favorite)

결과값 : 스콘

 

#값 바꾸기

dessert.favorite = '휘낭시에'

b = dessert()

print(b.favorite)

결과값 : 휘낭시에

'python' 카테고리의 다른 글

Anaconda  (0) 2022.03.19
집합  (0) 2022.03.16
리스트, 튜플, 딕셔너리  (0) 2022.02.25
함수  (0) 2022.02.25
반복문  (0) 2022.02.25