python
class - 개요
bono.html
2022. 10. 7. 10:42
class
새로운 타입을 생성, 객체 지향적(중심적)인 프로그래밍
클래스의 특징
클래스는 데이터와 기능을 묶어준다. 코드에 전역변수와 함수를 줄이는 등 여러 이점이 있다.
생성자, 소멸자가 있다.
다중상속이 가능하다. interface가 없다.
파이썬에는 접근지정자가 없다. (private 변수는 __로 작성하여 분류한다)
함수가 클래스 바깥쪽에 정의되어 있다면 function, 안쪽에 정의되어 있다면 method라고 한다.
클래스의 기본적인 형태
파이썬 메서드의 첫 번째 매개변수 이름은 관례적으로 self를 사용한다.
생성자, 소멸자가 있다.
class TestClass: #prototype, 원형클래스 객체 생성, 고유의 이름 공간을 확보
aa = 1 # 멤버변수(멤버필드), public
def __init__(self): # 생성자
print('생성자')
def __del__(self):
print('소멸자')
def printMessage(self): # method
name = '한국인' # 지역변수
print(name)
print(self.aa)
print(TestClass, id(TestClass))
print(TestClass.aa) # 멤버필드 호출
<class '__main__.TestClass'> 2555426767856
1
위에서 만들어 둔 TestClass type의 객체 생성
test = TestClass() # 생성자 호출한 후 TestClass type의 객체 생성
print(test.aa) # 멤버필드 호출
생성자
1
메소드 호출 방식 2가지
결과 값은 같다
- Bound method call
괄호 안에 자동으로 test가 들어가는 것과 마찬가지이다.
test.printMessage()
- UnBound method call
TestClass.printMessage(test)
생성한 객체의 type 확인, 모든 class활용이 끝나면 소멸자가 작동한다.
다만 소멸자는 활용도가 낮고 중요하지 않다.
print(type(1))
print(type(1.1))
print(type(test))
print(id(test), id(TestClass))
<class 'int'>
<class 'float'>
<class '__main__.TestClass'>
2775562120160 2775562664192
소멸자