클래스 메소드는 클래스에서 직접 접근할 수 있는 메소드
인스턴스가 아닌 클래스 자체를 첫 번째 인자로 받음.
@classmethod데코레이터를 사용하여 클래스 메소드를 선언함.
#예제 코드
class MyClass:
@classmethod
def my_classmethod(cls, arg1, arg2):
# Do something
클래스 메소드는 인스턴스 메소드와는 달리 클래스의 상태를 변경할 수 있으므로 클래스별 상태를 관리할 때 유용
매직 메소드는 클래스에서 특정 기능을 구현하는데 사용되는 특수한 메소드
해당 메소드들은 이중 밑줄(__)로 시작하고 끝남.
__init__: 객체 생성 시 호출
__str__: 객체를 문자열로 표현할 때 호출
__len__: 객체의 길이를 반환할 때 호출
__del__: 객체가 삭제될 때 호출
등이 존재함.
해당 메소드들은 클래스의 동작을 커스터마이징할 수 있게 해주며,
클래스를 파이썬의 기본 타입처럼 동작하게 할 수 있음.
시퀀스는 일련의 값들을 표현하는 데이터 구조
파이썬의 대표적인 시퀀스 데이터 타입에는 문자열, 리스트, 튜플 등이 있음.
#예제 코드
my_list = [1, 2, 3, 4, 5] # 리스트
my_tuple = (1, 2, 3, 4, 5) # 튜플
my_string = "Hello, World!" # 문자열
시퀀스는 인덱싱, 슬라이싱, 연결, 반복 등 다양한 연산을 지원함.
파이썬은 일급 함수(first-class function)를 지원하는 언어
- 함수는 객체로 생성
- 함수를 변수에 할당하거나 데이터 구조에 저장할 수 있음.
- 함수를 인자로 다른 함수에 전달할 수 있음.
- 함수에서 다른 함수를 반환할 수 있음.
이러한 특징은 고차 함수를 만들거나 함수형 프로그래밍 스타일을 가능하게 함.
병행성은 여러 작업이 동시에 실행되는 것처럼 보이는 컴퓨팅 모델
threading이나 multiprocessing 모듈을 이용해서 병령 처리를 할 수 있음.
병렬 처리는 CPU 작업을 분산시켜 전체 프로그램의 실행 시간을 줄일 수 있음.
스레딩: 스레딩은 프로세스 내에서 동시에 여러 작업을 수행할 수 있게 함.
스레드는 독립적인 작업 흐름을 가지지만, 프로세스의 메모리를 공유하기 때문에 데이터 공유가 쉬움. 그러나 이로 인해 데이터 접근에 대한 동기화 문제가 발생할 수 있음.
멀티프로세싱: 멀티프로세싱은 독립적인 프로세스들을 동시에 실행하는 것
각 프로세스는 자신만의 메모리 공간을 가지므로 메모리 동기화 문제가 덜하나,
프로세스 간 데이터를 공유하는 것이 어려움.
비동기 프로그래밍:
비동기 프로그래밍은 작업이 완료되기를 기다리는 동안 다른 작업을 실행하는 것
이는 I/O 바운드 작업, 즉 네트워크 요청이나 파일 입출력과 같은 작업에 특히 유용.
코루틴: '공동 루틴'으로, 서로 협력하는 루틴의 일종
코루틴은 작업을 중단하고 다른 루틴으로 제어를 넘기는 기능을 가지고 있음.
이를 통해 여러 작업을 동시에 수행하는 것처럼 보일 수 있음,
Futures: Future는 "미래"의 결과를 참조하는 객체
아직 계산되지 않은 결과를 가리킴.
Future는 비동기 실행을 위한 고수준 인터페이스를 제공.
javascript var, const, let 차이점 +(클로저) (0) | 2023.01.19 |
---|---|
SQL 관련 학습 (0) | 2023.01.03 |
다트 언어 문법 학습 (0) | 2022.12.22 |
댓글 영역