Programming/python

Udemy Python Boot Camp Section 21 정리 | 클래스 상속, 리스트 슬라이싱 Class Inheritance, List Slicing

자히Zahi 2024. 11. 17. 17:45

* 이 글은 필자가 자신이 배운 내용을 정리하기 위한 것이며, 결코 Udemy 강의를 결제하지 않은 타인의 학습을 고려하여 작성되지 않았습니다.

* 이 글을 학습에 활용하기를 원하신다면, Udemy에서 '[한글자막] Python 부트캠프 : 100개의 프로젝트로 Python 개발 완전 정복' 강의를 구매하시는 것을 권장드립니다.

 

 

이번 포스트는 클래스 상속과 리스트 슬라이싱에 대한 글이다. 클래스 상속은 객체지향 프로그래밍에서 중요한 개념이라고 하니, 잘 익혀두도록 하자.

 

클래스 상속이란, 말 그대로 한 클래스가 다른 클래스의 속성attibute이나 메소드method를 상속받는 것을 말한다.

일반적으로 클래스를 정의할 때에는 괄호를 넣지 않지만, 다른 클래스를 상속받는 클래스는 괄호 안에 상속받을 클래스의 이름을 넣는다.

#code
class Fish(Animal):
    def __init__(self):
        super().__init__()

 

이런 식으로 상속을 받을 수 있다. (Animal이라는 class가 존재한다는 전제하에)

아래에 super().__init__()이라는 말 때문에 (super은 상위 클래스를 뜻한다.) 초기화 메소드가 아닌 다른 메소드는 상속받지 않는 것처럼 보일 수도 있지만, 다른 메소드도 전부 상속받는다.

이 외에도 상위 클래스의 메소드나 속성을 상속받고 싶다면 super.을 사용하면 된다.

 

 

list slicing이란, 말 그대로 리스트를 썰어서 부분만 추출하는 것이다.

(리스트 이름)[시작할 index:끝낼 index + 1]로 list slicing을 할 수 있다.

#code
bands = ["greenday", "blink182", "sum42", "imaginedragons", "falloutboy", "theoffspring"]
favorite_bands = bands[0:2]

 

를 하면, favorite_bands에는 sum42를 제외한 greenday, blink182만 들어갈 것이다.

만약 시작이나 끝 부분을 지정하지 않고 처음부터 여기까지, 혹은 여기부터 끝까지를 하고 싶다면, [ : n] 혹은 [ n : ]이라고 표기할 수 있다.

증분을 넣어 a, a+n, a+2n, a+3n... 을 b-1까지 반복하고 싶다면 [a : b : n]처럼 작성할 수 있다. 만약 처음부터 끝까지 n이라는 증분으로 반복하고 싶다면 [::n]처럼 작성할 수도 있다. 만약 n이 -1이라면 리스트의 순서가 반전될 것이다. (list의 [-n]은 맨 끝부터 n번째라는 뜻이므로)

 

list slicing이라고 제목에도 해놓긴 했지만, 튜플에도 사용할 수 있다.

 

 

이번 포스트는 민망할 정도로 짧지는 않은데, 그래도 짧긴 하다. 전 포스트는 좀 민망할 정도로 짧아서 다른 섹션을 끼워넣기도 했다.

그러면 다음 포스트... 에서 더 많은 파이썬 정보와 함께 만나길 빌며 이번 글도 마친다.