Study53 파이썬 스페셜 메서드 스페셜 메서드스페셜 메서드(또는 매직 메서드라고도 불림)는 더블 언더스코어(__)로 시작하고 끝나는 메서드 이름을 가지며 특정 구문이나 내장 함수를 사용할 때 인터프리터에 의해 자동으로 호출된다. 1. __repr__()객체의 상태를 개발자가 쉽게 이해할 수 있도록 반환재생성할 수 있는 코드를 출력하도록 함객체의 주요 정보를 담고 있어야 함class Cat: def __init__(self, name, age): self.name = name self.age = age def __repr__(self): return f"Cat(name = '{self.name}', age = {self.age})"Manbo = Cat('만보', 13)print(r.. 2024. 10. 19. 파이썬 상속 1. 상속한 클래스의 속성과 메서드를 다른 클래스에 전달하는 기능이는 기존 코드의 재사용과 확장에 도움을 줌기본적으로 파이썬의 모든 클래스는 object라는 기본 클래스로부터 상속을 받음class Parent: pass class Child(Parent): passclass Animal: def __init__(self, name, age): self.name = name self.age = age def eat(self, food): print(f'{self.name} {food} 먹습니다') def sleep(self, hour): print(f'{self.name} {hour}시간 동안 잠을 잡니다') animal .. 2024. 10. 19. 파이썬 자료구조 (6) 트리 1. 트리Node와 Branch를 이용해 사이클을 이루지 않도록 데이터를 나뭇가지처럼 연결하는 구성의 구조트리 중 이진 트리(binary tree)형태의 구조로 탐색(검색) 알고리즘 구현을 위해 주로 사용 2. 알아둘 용어Node: 트리에서 데이터를 저장하는 기본 요소(데이터와 연결된 노드에 대한 Branch 정보 포함)Root Node: 트리 맨 위에 있는 노드Level: 최상위 노드를 레벨0으로 했을 때 하위 Branch로 연결된 노드의 깊이를 나타냄Parent Node: 어떤 노드의 상위 레벨에 연결된 노드Child Node: 어떤 노드의 하위 레벨에 연결된 노드Leaf Node: Child Node가 없는 노드Sibling Node: Parent Node가 동일한 노드 3. 이진 트리와 이진 탐색.. 2024. 10. 17. 파이썬 자료구조 (5) 해시 테이블 1. 해시 테이블(Hash Table)키(Key)에 데이터(Value)를 저장하는 자료구조파이썬에서는 해시를 별도 구현할 필요 없음보톨 배열로 미리 hash table 사이즈 만큼 생성 후 사용예) 파이썬 딕셔너리(Dictionary)타입 2. 알아둘 용어해시(Hash): 임의 값을 고정 길이로 변환하는 것해시 테이블(Hash Table): 키 값의 연산에 의해 직접 접근이 가능한 데이터 구조해시 함수(Hash Function): Key에 대해 산술 연산을 이용해 데이터 위치를 찾을 수 있는 함수해시 값(Hash Value) 또는 해시 주소(Hash Address): 키를 해싱 함수로 연산해서 해시 값을 알아내고 이를 기반으로 해시 테이블에 해당 키에 대한 데이터 위치를 일관성 있게 찾을 수 있음슬롯(S.. 2024. 10. 16. 파이썬 자료구조 (4) 더블링크드리스트 더블링크드리스트링크드리스트의 일방향 탐색 기능을 개선한 자료구조양방향으로 연결되어 있어서 노드 탐색이 양쪽으로 가능class Node: def __init__(self, data, prev=None, next=None): self.prev = prev self.data = data self.next = nextclass NodeMgmt: def __init__(self, data): self.head = Node(data) self.tail = self.head def insert(self,data): if self.head == None: self.head = Node(data) .. 2024. 10. 16. 파이썬 자료구조 (3) 링크드리스트 링크드리스트떨어진 곳에 존재하는 데이터를 연결하여 관리하는 자료구조하나 이상의 데이터 필드와 다음 노드의 주소를 저장하는 한 개의 포인터 필드로 구성되어 있음파이썬에서는 리스트 타입이 링크드리스트 역할도 이미 지원함데이터의 삽입과 삭제가 매우 빠름 링크드리스트 용어노드(node): 데이터 저장 단위(데이터, 포인터)로 구성포인터(pointer): 각 노드 안에서 다음이나 이전의 노드와의 연결 정보가 들어있는 공간 링크드리스트 파이썬 구현# 파이썬에서는 링크드 리스트를 구현할 때 클래스를 주로 활용class Node: def __init__(self, data): self.data = data self.next = None # Node 객체와 Node 객체를 연결.. 2024. 10. 16. 이전 1 2 3 4 5 6 7 8 9 다음