일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- string
- backtracking
- sorting
- two pointers
- binary tree
- recursive
- easy
- DP
- linked list
- 재귀
- math
- Medium
- 이진트리
- 문자열
- Depth-first Search
- Binary
- binary search
- list
- tree
- 리트코드
- 중간
- matrix
- leetcode
- 미디움
- Python
- Array
- hash table
- 쉬움
- HashTable
- dfs
- Today
- Total
목록Python/Fundamentals (5)
부부의 코딩 성장 일기
코루틴이란? 파이썬은 기본적으로 동기적인 프로그래밍 스타일을 채택하고 있다. 그래서, 기본적인 함수 호출 및 코드 실행은 순차적으로 진행이 되며, 한 작업이 끝나야 다음 작업이 수행된다. 이를 동기 프로그래밍이라고 한다. 반대로 비동기의 경우, 여러 작업을 동시에 수행할 수 있게 하는 프로그래밍 스타일이다. 이는 특히 I/O 작업이나, 네트워크 통신과 같은 지연이 발생하는 작업들을 효율적으로 다루는데 유용하다. 파이썬에서 코루틴은, 비동기 프로그래밍을 지원하는 기능 중 하나라고 보면 된다. 함수의 실행을 일시 중단하고, 나중에 재개할 수 있는 함수이며, 이를 통해 여러 작업ㅇ르 동시에 수행하는 데 유용하고, 비동기 코드를 쉽게 작성할 수 있다. 코루틴을 정의하는 방법은 함수 정의와 유사하지만, 함수를 호..
추상화란? 추상화란 프로그램의 세부 구현을 감추고 필요한 부분만을 노출시키는 것을 의미한다. 추상클래스는 구현하지 않은 추상메소드를 한 개 이상 가지며, 자식 클래스에서 해당 추상 메소드를 반드시 구현하도록 강제한다. 왜 그렇게 할까? 이는 코드를 더 간결하게 만들고 모듈성을 높여 유지보수를 쉽게 만들어준다. 만약 추상클래스가 여러개의 자식 클래스를 가지고 있고, 자식 클래스에서 추상 메소드에서 정의해야 하는 내용이 다르다면, 추상클래스를 사용하는 것이 효율적이겠다. abc Library 이는 python에서 추상 베이스 클래스(ABC - Abstract Base Class)를 정의하는 데 사용된다. 즉, 추상 베이스 클래스는 일종의 템플릿으로, 특정 메서드가 반드시 파생 클래스에서 구현되어야 함을 정..
Python에서 packages를 만들게 되면, __init__.py를 포함하게 된다. 다들 그렇게 코드를 작성하길래, 왜 필요한지 모른 채 그냥 __init__.py를 추가했었다. 그러다가, __init__.py를 추가하지 않고, 해당 packages를 import해서 불러오려고 하다보니, modules를 찾을 수 없다는 에러가 떴고, 그 원인이 바로 __init__.py였다 __init__.py의 역할은? __init__.py 파일은 python 패키지를 정의하는 데에 사용되는 파일이다. 주요 역할은 아래와 같은데, 1. 패키지 식별자로 사용 __init__.py 파일이 있는 디렉토리는 Python에게 패키지로 취급되어야 함을 알린다. 즉, 이 파일이 없다면 해당 디렉토리는 단순한 모듈 디렉토리로 간..
데코레이터란? 파이썬에서 함수나 메소드를 감싸서 (Decorate하여), 특정 동작을 추가하거나 수정하는 기능을 말한다. 데코레이터를 사용하게 되면 코드의 재사용성을 높이고, 코드를 간결하게 유지하는 것이 가능하다. 데코레이터는 일반적으로 내부에 다른 함수를 정의하고, 그 함수를 반환하는 형태로 구현이 되는데, 이런 구조는 클로저(Closure)라 불리는 개념을 기반으로 한다. 아래의 예제를 보면, my_decorator라는 데코레이터 함수는 func이라는 인자를 받아, 그 함수를 감싸는 wrapper라는 함수를 정의하고, wrapper함수를 반환하고 있다. 이에 wrapper 함수는 클로저로써 외부함수(my_decorator)의 변수에 접근할 수 있다. @my_decorator와 같이 표시하면, 실제로..
얕은 복사란? 원본 객체의 요소들을 새로운 객체로 복사하지만, 내부에 있는 객체들은 참조로 복사 내부 객체는 그래서 동일한 객체를 가리키게 됨 아래 예제를 보면 단순히 list를 copy한 후, 기존 리스트(original_list)를 변경하면, 얕은 복사를 한 shallow_copy도 값이 변하게 됨. "내부 객체가 동일한 객체 - 같은 주소"를 가리키고 있기 때문! original_list = [1, [2, 3], 4] shallow_copy = original_list.copy() # 얕은 복사 후 내부 리스트의 참조는 동일함 original_list[1][0] = 99 print(original_list) # 출력: [1, [99, 3], 4] print(shallow_copy) # 출력: [1,..