본문 바로가기
● 크롤링, 자동화/BeautifulSoup

[FC] 2. 파이썬 객체 이해 / virtualenv / 클래스변수 / 인스턴스변수 / 생성자 / 소멸자

by 0ver-grow 2019. 6. 24.
반응형

<퀴즈>

1. 파이썬은 ___ & ___ 언어이다.

2. ___ 를 통해 파이썬 패키지를 관리할 수 있다.

3. ___ 을 통해 프로젝트마다 독립적인 관리를 할 수 있다.

 

<정답>

1. 인터프리터 & 객체지향

2. pip

3. vitualenv(가상환경)

 

객체?

속성(Attribute)과 메서드(Method)로 이뤄짐. 

객체란 대상을 추상화한다는 의미

 

예를 들어

고양이 : 객체(object)

색, 크기, 성별 : 속성(Attribute)

냥펀치, 점프 : 메서드(Method)

+) py에선 속성을 Attribute, JS에선 속성을 Property

 

고양이의 핵심적 개념과 특징을 모아 대상화시킨 것을 추상화라고 한다.

파이썬은 모든 것이 객체로 이루어짐

+) JS에선 리터럴 타입{}으로 객체를 선언했음.

 

클래스

class 라는 키워드로 객체 만듦

객체를 추상화하여 담는 틀

메서드,변수,속성선언

 

클래스 선언

class 클래스명() : 

__init___(self) : 생성자

 

이제 코드로 배워보자

먼저 virtualenv 실행하기

전제조건!

virtualenv가 설치되어있어야한다.

안되어 있다면 설치할 것 pip install virtualenv

 

가상환경을 실행시켜주기 위해 터미널을 통해 activate를 실행시킨다.

activate파일은 py폴더 > ENV폴더 > Scripts폴더 내부에 있다.

다른 방법으로도 virtualenv 실행가능

 

이제 main.py에 입력해보자

+) 궁금한점. 생성자는 반드시 __init__(self) 로만해야하나? 생성자가 꼭 필요한가? 언제 필요한가?

 

클래스에는 다음과 같이 2가지의 변수(속성)들이 속해있다.

클래스 변수 (공유) , 인스턴스 변수 (개별)

 

def 메서드명(self, 인자 ...) : 

메서드를 선언하기위해, 함수를 선언하기 위해 사용

객체에 속해있는 함수들을 메서드라고 한다.

속해있지 않으면 그냥 함수이다.

self키워드는 인스턴스 메서드의 꼭 첫 번째 인자로 있어야 오류안남. 인스턴스 초기화 혹은 반환할 때 사용

 

하단은 Cat이란 객체를 선언

species처럼 클래스 내부에 선언된 변수를 클래스 변수. 클래스의 네임 스페이스에 위치.

또한 클래스 변수는 여러 인스턴스 변수들이 공유하는 값이다.

self.name처럼 self가 붙어 있는 변수를 인스턴스 변수. 인스턴스의 네임 스페이스에 위치.

 

Cat객체안에 있는 클래스 변수와 인스턴스 변수에 대해 살펴보자

 

+. 생성자(__init__)가 클래스의 인스턴스가 생성될 때 자동으로 호출되는 함수

+. 소멸자(__del__)는 클래스의 인스턴스가 소멸될 때 자동으로 호출되는 함수

 

<퀴즈>

1. 파이썬은 모든 것이 ___ 로 표현된다.

2. ___ 은 대상을 추상화하여 담는 틀이다.

3. ___ 은 공유 개념이고, ___ 은 개별 개념이다.

4. ___ 키워드는 메서드의 첫 번째 인자로 와야한다.

 

클래스,인스턴스 자료 출처 : https://wikidocs.net/1744

 

도움이 되셨다면 ♡ 클릭해주세요 ♡ 감사합니다 :) 

 

반응형