Python 클래스와 객체
클래스는 같은 객체들을 만들 수 있는 틀이고 객체는 만들어진 결과물이다.
● 클래스 선언
class 클래스명:
코드
파이썬에서 클래스의 선언은 위와 같이 한다.
● 생성자 함수
class identity:
def __init__(self, name, sn, address):
self.name = name
self.sn = sn
self.address = address
위 클래스는 이름, 주민번호, 주소를 갖은 객체를 생성할 수 있는 identity 클래스이다.
__init__ 함수는 생성자 함수이며 객체가 생성시 1회 호출되는 함수이다. 함수의 인자값인 self는 항상 첫번째에 넣어주며 해당 객체를 의미한다. 그 이후에 오는 것은 멤버 변수라고 한다. 객체 생성시에 값을 넘겨받으며 self를 통해 해당 객체에 저장된다.
● 객체 생성
id1 = identity("홍길동", "000101-3000000","서울")
id2 = identity("임꺽정", "000202-3000000","부산")
print(id1.name, id2.name) 출력결과: 홍길동 임꺽정
위처럼 코드 작성시 id1은 홍길동, 000101-3000000, 서울 그리고 id2는 임꺽정, 000202-3000000 , 부산이라는
값을 갖는 객체를 생성한 상태이다.
출력 결과와 같이 각 객체들은 객체명.변수명을 통해서 접근할 수 있다.
id3 = identity()
__init__() missing 3 required positional arguments: 'name', 'sn', and 'address'
id3와 같이 객체 생성시 위와 같은 에러메시지가 발생한다. 위와 같은 에러 발생을 막기위해 클래스 선언시 코드를 아래와 같이 수정하여 초기값을 통해 방지할 수 있다.
def __init__(self, name="미입력", sn="미입력", address="미입력"):
id3 = identity()
print(id3.name, id3.sn, id3.address) 출력결과 : 미입력 미입력 미입력
● 객체의 값 변경
객체 내부에 이미 들어있는 값을 변경하고 싶다면 변수를 바꾸는 것과 동일하게 객체명.매개변수명 = 변경 값 이다.
print(id3.name) 출력결과: 미입력
id3.name = "이몽룡"
print(id3.name) 출력결과: 이몽룡