Python

Python 클래스와 객체

Devwon99 2024. 1. 20. 16:00

클래스는 같은 객체들을 만들 수 있는 틀이고 객체는 만들어진 결과물이다.

 

● 클래스 선언


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) 출력결과: 이몽룡