본문 바로가기

분류 전체보기

(32)
(Python) 정렬 sort() : 리스트 메서드 반환값이 없고, 주어진 리스트 자체를 변경하며, 리스트만을 위한 메서드! reverse 매개변수 존재 (True, False, 기본값은 False) 기본이 오름차순! sorted() : 파이썬 내장 함수 어떤 반복가능한 객체에도 적용 가능하며, 정렬이 된 새로운 리스트를 반환한다. 매겨변수 'key' 로 각 요소를 정렬 전에 변경 가능하다. 정렬 기준을 정해줄 수 있다. reverse 매개변수 존재 (True, False, 기본값은 False) 기본이 오름차순! 기존의 순서가 있을 때, 중복되는 경우가 있다면 기존의 순서를 참고하여 정렬한다. ex) 같은 성적이지만 선착 딕셔너리를 매개변수로 주게되면 key 값을 기준으로 정렬된 리스트를 반환한다. # 딕셔너리를 주게되면 키..
(Python) 내장함수 zip() : 두 개의 iterable 객체를 하나로 묶어주는 함수 a = [1,2,3,4] b = {1,2,3} seasons = ("봄", "여름", "가을", "겨울") print(list(zip(a,seasons))) print(list(zip(b,seasons))) for (a,b) in list(zip(a,seasons)): print(a,b) #[(1, '봄'), (2, '여름'), (3, '가을'), (4, '겨울')] #[(1, '봄'), (2, '여름'), (3, '가을')] #1 봄 #2 여름 #3 가을 #4 겨울 filter() : 조건을 제시하는 함수를 만들어서 그 조건에 해당하는 요소를 추출하는 함수 두 개의 인수를 받으며, 첫번째는 조건함수, 두번째는 iterable 객체를 받..
(Python) Iterable 과 Sequence Iterable : 반복 가능한 데이터 또는 객체 Iterable 객체 안에 Sequence 객체가 있다고 생각하면 되겠다!! Iterable (반복 가능한 객체) Sequence (순서를 매길 수 있는 객체) String, List, Tuple, Range 그렇지 않은 객체 Set, Dictionary
(Python) 객체지향 프로그래밍 - 추상 클래스 추상 클래스란 클래스 안에 추상 메서드가 최소 1개 이상 존재하는 클래스이다. 추상 클래스라고 추상 메서드만 존재하지 않아도 된다. 추상 클래스는 선언부만 존재하고, 구현부는 없는 클래스이다. 추상클래스는 인스턴스를 절대로 생성할 수 없다. 상속을 통해 자손 클래스에서 추상 메서드를 전부 오버라이딩 한 경우에만 인스턴스 생성이 가능하다. 그러면 추상 클래스를 왜 이용할까? 추상클래스를 상속받는 각각의 자손클래스에서 다른 내용으로 구현될 것을 예상하고 뼈대 즉 가이드라인만 만드는 목적으로 활용한다. from abc import * class StudentBase(metaclass = ABCMeta): @abstractmethod def study(self): pass @abstractmethod def g..
(Python) 객체지향 프로그래밍 - 다형성 Polymorphism 다형성이란 여러가지 형태를 가질 수 있는 능력을 말한다. 파이썬에는 뭐 형식의 다형성, 메서드 다형성이 있다고들 하는데, 나는 그냥 함수의 인자로 서로 다른 인스턴스를 받아 다른 결과를 도출하거나, 서로 다른 인스턴스의 메서드를 호출하는 것이라고 말하고 싶다. 가장 주요 사항은 "서로 다른 인스턴스" 이다. 다형성은 어떤 인스턴스를 적용하냐에 따라 각각 결과값이 달라지는 것이라고 생각하면 되겠다. 아래는 예시 코드이다. # 다형성 실습 class Product: price = 0 bonusPoint = 0 # 매개변수가 있는 생성자 def __init__(self, price): self.price = price self.bonusPoint = int(self.price / 10.0) class Tv(P..
(Python) 객체지향 프로그래밍 - 클래스의 다중 상속 다중 상속이란 여러 기반 클래스로부터 상속을 받아서 파생 클래스를 만드는 방법이다. 다음과 같은 문제점이 있다. 1. 상속받은 여러 기초 클래스에 같은 이름의 멤버가 존재할 수 있다. (충돌 가능) 2. 하나의 클래스를 간접적으로 두 번 이상 상속 받을 수 있다. 다이아몬드 상속,, 문제가 많다! 부정확함 해결책으로 메서드 탐색 순서(Method Resolution Order, MRO) 이용 MRO 기법은 복잡한 상속관계를 지닐 때 어떤 클래스의 멤버가 호출되는지 알아볼 수 있는 편리한 방법이다. 다중 상속은 가급적 안쓴다...! 상속은 가급적 최대 2번까지만! # 다중상속에 대한 실습 class Person: def __init__(self): print("나는 사람입니다.") def greeting(..
(Python) 객체지향 프로그래밍 - 클래스 상속 (private) class Disk(object): __capacity = 0 __rpm = 0 def __init__(self, capacity, rpm): self.__capacity = capacity self.__rpm = rpm def getCapacity(self): return self.__capacity def getRpm(self): return self.__rpm def __str__(self): return "디스크의 용량은 " + str(self.__capacity) + "GB" + " RPM은 " + str(self.__rpm) from Disk import Disk class HddDisk(Disk): def __init__(self, capacity, rpm): super().__init__(..
(Python) 객체지향 프로그래밍 - 클래스 상속 (1) 클래스 상속(Inheritance)이란? 클래스의 상속은 기존 클래스에 있는 필드와 메서드를 그대로 물려받는 새로운 클래스를 만드는 것이다. 상속받은 후에는 새로운 클래스에서 필드나 메서드를 추가해 이용할 수 있다. 부모 클래스, 조상 클래스 - 서브 클래스, 자식 클래스, 자손 클래스 부모 클래스는 모든 자식 클래스에게 영향을 주지만, 자식 클래스는 부모 클래스에게 영향을 주지 못한다. class 자식 클래스(부모 클래스): def ~~ def ~~ 메서드 오버라이딩(Overriding) "수정" 상의 클래스의 메서드를 서브 클래스에서 재정의하는 것 부모 클래스의 메서드를 자식 클래스의 용도에 맞게 바꾸는 개념 단, 메서드의 선언부는 반드시 동일하고, 구현부만 다르게 한다! 조상 클래스의 Private..