🐱🐉 혼공파 6주차 CH07-2~08 🐱🐉
p.431 예제 실행 후 결과 화면 캡쳐
혼공 용어 노트에 나만의 언어로 객체, 클래스, 인스턴스, 생성자, 메소드 정리
❤ 07-2 외부 모듈
* 모듈 설치하기
외부 모듈은 window+R 키를 눌러 프로그램 실행창을 띄우고 [cmd]를 입력하면 나타나는 명령 프롬포트 창에서 실행해야 한다.
pip install 모듈 이름 |
* Beautiful Soup 모듈
https://www.crummy.com/software/BeautifulSoup/bs4/doc/
* 라이브러리와 프레임워크
ⓐ 라이브러리
개발자가 모듈의 기능을 호출하는 형태의 모듈을 라이브러리라고 한다.
ⓑ 프레임워크
모듈이 개발자가 작성한 코드를 실행하는 형태의 모듈을 프레임워크라고 한다.
개발자가 모듈의 함수를 호출하는 것이 일반적인 제어 흐름인데, 이와 반대로 개발자가 만든 함수를 모듈이 실행하는 것은 제어가 역전된 것이므로 이를 제어 역전이라고 한다.
❤ 08-1 클래스의 기본
* 객체 지향 프로그래밍 언어
객체 지향 프로그래밍이란 객체를 우선으로 생각해서 프로그래밍한다는 의미이다. 클래스 기반의 객체 지향 프로그래밍 언어는 클래스라는 것을 기반으로 객체를 만들고, 그러한 객체를 우선으로 생각해서 프로그래밍해야 한다.
* 객체
여러 가지 속성을 가질 수 있는 대상을 객체라고 한다.
* 클래스 선언하기
class 클래스 이름: 클래스 내용 |
클래스는 객체를 조금 더 효율적으로 생성하기 위해서 만들어진 구문이다.
위처럼 만들어진 클래스는 클래스 이름과 같은 함수(생성자)를 사용해서 객체를 만든다.
인스턴스 이름(변수 이름) = 클래스 이름() |
이러한 클래스를 기반으로 만들어진 객체를 인스턴스라고 부른다.
* 생성자
클래스 이름과 같은 함수를 생성자라고 한다. 클래스 내부에 __init__라는 함수를 만들면 객체를 생성할 때 처리할 내용을 작성할 수 있다.
class 클래스 이름: def __init__(self, 추가적인 매개변수): pass |
클래스 내부의 함수는 첫 번째 매개변수로 반드시 self를 입력해야 한다. 이때 self는 '자기 자신'을 나타내는 딕셔너리라고 생각하면 된다. 다만 self가 가지고 있는 속성과 기능에 접근할 때는 self.<식별자> 형태로 접근한다.
* 메소드
클래스가 가지고 있는 함수를 메소드라고 한다. 클래스 내부에 메소드를 만들 때는 생성자를 선언하는 방법과 똑같다. 첫 번째 매개변수로 self를 넣어야 한다는 것을 꼭 기억하기.
class 클래스 이름: def 메소드 이름(self, 추가적인 매개변수): pass |
❤ 08-2 클래스의 추가적인 구문
* 어떤 클래스의 인스턴스인지 확인하기
객체(인스턴스)가 어떤 클래스로부터 만들어졌는지 확인할 때 isinstance() 함수를 사용한다.
isinstance(인스턴스, 클래스) |
* 클래스 변수와 메소드
ⓐ 클래스 변수 만들기
class 이름: 클래스 변수 = 값 |
ⓑ 클래스 변수에 접근하기
클래스 이름.변수 이름 |
* 클래스 함수 만들기
class 클래스 이름: @classmethod def 클래스 함수(clas, 매개변수): pass |
@classmethod 부분을 데코레이터라고 부른다.
* 클래스 함수 호출하기
객체(인스턴스)가 어떤 클래스로부터 만들어졌는지 확인할 때 isinstance() 함수를 사용한다.
클래스 이름.함수 이름(매개변수) |
* 상속
클래스 기반의 객체 지향 언어들은 상속이라는 기능을 지원한다. 어떤 클래스를 기반으로 그 속성과 기능을 물려받아 새로운 클래스를 만드는 것을 상속이라고 한다.
부모에 정의되어있는 함수를 자식에서 다시 정의하는 것을 재정의 또는 오버라이드라고 한다.