자바스크립트와 파이썬은 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 |