Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 레이아웃 스래싱
- 정적타입언어
- next14
- 즉시실행함수
- 누적합
- webpack
- 리액트
- 값복사
- 동적타입언어
- 마진 상쇄
- 재귀
- react
- react18
- 수학
- 백준
- 이벤트 생명주기
- 브루트포스
- vscode
- 이분탐색
- 구현
- 공백찾기
- 컴포넌트 생명주기
- 두 포인터
- BFS
- 렌더링 최적화
- SW EA
- 슬라이딩 윈도우
- 레퍼런스복사
- webpack5
- 분할정복
Archives
- Today
- Total
D.JOUNG
파이썬에서 클래스를 함수 안에 정의할 수 있는 이유 본문
자바스크립트와 파이썬은 C++나 JAVA와 달리 변수 타입이 동적으로 설정된다. 변수 타입이 런타임에서 결정된다는 뜻이다.
때문에 파일 수준이나 멤버 수준에서 정적으로 타입을 지정하는 C++나 JAVA와 달리 함수에서 동적으로 클래스의 멤버를 수정하거나 추가하는게 가능하다.
예를 들면 다음의 예시다.
#동적으로 클래스의 멤버 변수를 추가하는 경우
class MyClass:
pass
obj = MyClass()
obj.new_attr = "New Attribute"
print(obj.new_attr) # 출력: New Attribute
#클래스를 함수 안에서 정의하는 경우
def create_class():
class InnerClass:
def __init__(self, value):
self.value = value
def display(self):
print(f"Value is {self.value}")
return InnerClass
MyClass = create_class()
obj = MyClass(10)
obj.display() # 출력: Value is 10
위 두 경우 모두 파이썬의 동적 특성 덕분에 가능하다.
'토막 지식' 카테고리의 다른 글
고정폭 글꼴이란? (3) | 2024.07.16 |
---|---|
정적 타입 언어 VS 동적 타입 언어, 그리고 Typescript (1) | 2024.06.13 |
[javascript] 즉시 실행 함수(IIFE) - 타입스크립트 enum 컴파일 (0) | 2024.06.13 |
[html, css] margin 영역끼리 겹치는 마진 상쇄 해결 (0) | 2024.06.06 |