방명록
- [Python] 클래스 선언과 객체 생성2023년 12월 30일 15시 03분 19초에 업로드 된 글입니다.작성자: 묭동이
클래스(class)
- "함수"의 확장
- 사물의 "설계도"
- Ex) 차량의 설계도
- 속성(Attribute)과 메소드(Method)를 가짐
- Ex) 속성(성질, 상태) : 핸들, 문, 브랜드, 모델명, 연식 등
- Ex) 메소드(기능, 동작) : 전진, 후진, 정지 등
- 클래스 생성 방법
- class '클래스 이름'
- Ex) class Car:
- class '클래스 이름'
객체(object)
- 클래스('설계도')로 부터 만들어낸 사물
- 객체는 속성과 메소드를 가질 수 있음
Attribute(속성) : brand, model, year
Method(메소드) : init(초기화 메소드), start, stop, __str__
- def __init__(self, ~)
- 초기화 메소드로 객체를 생성하면 처음으로 실행된다
- def start(self)
- 차량의 움직이고 있는 상태에 관련된 메소드
- 객체를 생성했을 때 처음으로 실행된 is_moving의 값인 False를 체크하여 차량의 상태(정보)를 출력한다
- 이미 움직이고 있는 경우(= is_moving 값이 True인 경우)
- 차량이 이미 움직이고 있다고 출력
- def stop(self)
- 차량의 정지한 상태에 관련된 메소드ㅡ
- 객체를 생성했을 때 처음으로 실행된 is_moving의 값인 False를 체크하여 차량의 상태(정보)를 출력한다
- 이미 정지하고 있는 경우(= is_moving 값이 False인 경우)
- 차량이 이미 정지했다고 출력
- def __str__(self)
- 차량의 연식, 브랜드명, 모델명의 정보를 출력한다
Car 클래스의 객체인 my_car를 생성
객체를 생성할 때 입력한 "Toyota", "Corolla", 2020 데이터는 초기화 메소드를 통해 저장된다
클래스의 메소드를 사용할 때는 객체명.메소드명(인자)로 사용가능하다
Ex) Car 클래스의 start(), stop(), __str__() 메소드 사용
* 객체를 생성할 때 주의할 점 *
초기화 메소드인 init 메소드의 argument 개수와 동일하게 값을 입력해야 함
아래 에러는 init 메소드의 인자 개수와 같지 않게 입력하여 발생한 오류이다
클래스 사용의 엄청난 특징은 객체(인스턴스)가 독립적으로 구현이 되며 동시에 실행되고 있다는 점이다
해당 클래스의 존재하지 않는 메소드를 사용하게 되면 AttributeError가 발생한다
- "AttributeError": 클래스나 인스턴스에서 찾을 수 없는 속성(변수) 또는 메소드(함수)에 접근하려고 할 때 발생
- 메소드도 클래스의 속성 중 하나로 간주되므로, 클래스에 정의되지 않은 메소드를 호출하려고 하면 "AttributeError"가 발생
메소드 에러가 아니라 왜 AttributeError가 발생하지? 생각할 수도 있다
이는 파이썬에 MethodError가 존재하지 않기 때문이다
'Python > 기초문법' 카테고리의 다른 글
[Python] Anaconda 가상환경 구축(macos) (2) 2024.01.02 [Python] 딕셔너리(사전) 자료형 (2) 2023.12.30 [Python] 문자열 포맷팅(String Formatting) (0) 2023.12.30 [Python] library(라이브러리) (0) 2023.12.29 [Python] 리스트 함수 (0) 2023.12.29 다음글이 없습니다.이전글이 없습니다.댓글