(2021.01.14)
여기서부터가 파이썬의 시작인듯하다.
두잇파이썬의 5장은 클래스, 모듈, 패키지 등등을 공부한다.
자바에서 들어본 용어들이 나온다.
내일까지 5장끝내야지~~
book.naver.com/bookdb/book_detail.nhn?bid=15052904
참고도서: 두잇파이썬
클래스(class)
클래스는 아주 필수적인 요소는 아니고, 적당한 곳에 쓰면 아주 용이하게 쓰이는 듯하다.
어떠한 클래스를 생성하고, 클래스를 이용해서 여러 객체들을 만들 수 있다.
두잇파이썬 책에서는 과자틀을 클래스로, 그 틀로 찍어 만든 과자를 객체로 비유한다.
class 클래스 이름:
내용
내용
...
메서드는 우리가 흔히 아는 함수이다.
클래스 안에 있는 함수를 따로 메서드라고 부른다.
def 함수 이름(매개변수):
수행할 문장1
수행할 문장2
...
일반 함수 선언과 마찬가지로 메서드도 위처럼 코드를 짜준다.
객체에 숫자 지정할 수 있게 만들기
class Fourcal():
def setdata(self,first,second):
self.first=first
self.second=second
여기에서 (self, first, second)는 메서드의 매개변수이다.
self.first=first 와 self.second=second는 메서드의 수행문이다.
메서드의 매개변수에서 첫번째 매개변수 self는 다른 함수의 매개변수와는 다르다.
a=Fourcal()
a.setdata(4,27)
위 처럼 a 객체를 만들고 setdata 메서드를 호출하면
첫번째 매개변수 self에는 setdata 메서드를 호출한 객체 a가 자동으로 전달된다.
self.first=4
self.second=27
이것이 결국은 밑과 같은 의미이다.
a.first=4
a.second=27
사칙연산하는 클래스를 만들어보았다.
객체 a와 객체 b를 생성하고, setdata 메서드를 호출하여 값을 넣어준다.
그러면 이렇게 모든 것이 동작하는 것을 볼 수 있다!!
생성자(Constructor)
생성자는 클래스를 생성할 때, 자동으로 호출되는 메서드를 말한다.
객체에 초기값을 설정해야 할 필요가 있을 경우에 사용한다.
__init__를 사용하면 메서드는 생성자가 된다.
위에서 만들었던 사칙연산 클래스를 수정해보면
def __init__(self,first,second)
self.first=first
self.second=second
이렇게 __init__ 메서드를 써줄 수 있다.
여기에서 a=FourCal()을 실행할 때에는 ()안에 매개변수를 써주어야한다.
a=FoutCal(4,27)과 같이 코드를 입력해주면
이런식으로 실행되는 것을 볼 수 있다~~~!!
클래스의 상속
이미 만들어 놓은 클래스의 기능을 이어서 쓰고 싶을 때 클래스의 상속을 사용한다.
class 클래스이름(상속할 클래스이름):
내용
내용
...
기본 구조는 이렇다.
계속 보던 사칙연산 클래스로 공부를 했다.
FourCal 클래스를 상속해서 a의 b제곱을 계산하는 클래스를 만들어보았다.
이렇게 클래스 상속을 해주면
power 메서드가 실행되는 것을 볼 수 있음!!!
++++
원래 만들어 놓은 메서드에 덮어쓸 수 있는 메서드 오버라이딩도 있다.
메서드 오버라이딩을 하면 기존의 메서드가 아닌 오버라딩한 메서드가 호출된다.
나누기에서 0으로 나눌경우 0을 리턴값으로 나오는 것으로 바꿔주었다.
클래스 변수
객체 변수는 다른 객체들에 영향받지 않고, 독립적으로 그 값을 가진다.
클래스 변수는 그 클래스로 만든 모든 객체에 공유된다.
--> 같은 메모리를 가진다.
class 클래스이름:
클래스변수이름 = 내용
...
이렇게 클래스 변수를 선언할 수 있다.
클래스이름.클래스변수
이렇게 클래스 변수를 사용할 수 있다.
클래스 변수보다는 객체 변수가 더 많이 쓰인다고 한다.
'Coding > Python' 카테고리의 다른 글
[Python] 인터프리터 종료 (0) | 2021.01.15 |
---|---|
[Python] 파이썬 - 모듈 (0) | 2021.01.15 |
[Python] 파이썬 함수, 사용자 입력/출력, 파일 읽고 쓰기 (2) | 2021.01.11 |
[Python] 파이썬 반복문 - while문, for문 (0) | 2021.01.09 |
[Python] 파이썬 제어문 - if문 (0) | 2021.01.08 |